题库练习 倒酒
← 上一题 下一题 →

A6258 | 倒酒

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

Winy是一家酒吧的老板,他的酒吧提供两种体积的啤酒,$a$ ml 和 $b$ ml,分别使用容积为 $a$ ml 和 $b$ ml 的酒杯来装载。



酒吧的生意并不好。Winy 发现酒鬼们都非常穷。有时,他们会因为负担不起 $a$ ml 或者 $b$ ml 啤酒的消费,而不得不离去。因此,Winy 决定出售第三种体积的啤酒(较小体积的啤酒)。



Winy 只有两种杯子,容积分别为 $a$ ml 和 $b$ ml,而且啤酒杯是没有刻度的。他只能通过两种杯子和酒桶间的互相倾倒来得到新的体积的酒。



为了简化倒酒的步骤,Winy 规定:



1. $a≥b$;

2. 酒桶容积无限大,酒桶中酒的体积也是无限大(但远小于桶的容积);

3. 只包含三种可能的倒酒操作:

1. 将酒桶中的酒倒入容积为 $b$ ml 的酒杯中;

2. 将容积为 $a$ ml 的酒杯中的酒倒入酒桶;

3. 将容积为 $b$ ml 的酒杯中的酒倒入容积为 $a$ ml 的酒杯中。

4. 每次倒酒必须把杯子倒满或把被倾倒的杯子倒空。



Winy希望通过若干次倾倒得到容积为 $a$ ml 酒杯中剩下的酒的体积尽可能小,他请求你帮助他设计倾倒的方案。

输入格式

输入共一行两个整数 $a$ 和 $b$,满足 $0 < a, b \le 10^9$。

输出格式

第一行一个整数 $c$,表示可以得到的酒的最小体积。



第二行两个整数 $P_a$ 和 $P_b$(中间用一个空格分隔),分别表示从体积为 $a$ ml 的酒杯中倒出酒的次数和将酒倒入体积为 $b$ ml 的酒杯中的次数。



若有多种可能的 $P_a,P_b$ 满足要求,那么请输出 $P_a$ 最小的一个。若在 $P_a$ 最小的情况下,有多个 $P_b$ 满足要求,请输出 $P_b$ 最小的一个。

输入输出样例

输入 #1
5 3
输出 #1
1
1 2
C++ 编辑器
输入
输出