A91419.倒酒
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
Winy是一家酒吧的老板,他的酒吧提供两种体积的啤酒,a ml 和 b ml,分别使用容积为 a ml 和 b ml 的酒杯来装载。
酒吧的生意并不好。Winy 发现酒鬼们都非常穷。有时,他们会因为负担不起 a ml 或者 b ml 啤酒的消费,而不得不离去。因此,Winy 决定出售第三种体积的啤酒(较小体积的啤酒)。
Winy 只有两种杯子,容积分别为 a ml 和 b ml,而且啤酒杯是没有刻度的。他只能通过两种杯子和酒桶间的互相倾倒来得到新的体积的酒。
为了简化倒酒的步骤,Winy 规定:
-
a≥b;
-
酒桶容积无限大,酒桶中酒的体积也是无限大(但远小于桶的容积);
-
只包含三种可能的倒酒操作:
-
将酒桶中的酒倒入容积为 b ml 的酒杯中;
-
将容积为 a ml 的酒杯中的酒倒入酒桶;
-
将容积为 b ml 的酒杯中的酒倒入容积为 a ml 的酒杯中。
-
-
每次倒酒必须把杯子倒满或把被倾倒的杯子倒空。
Winy希望通过若干次倾倒得到容积为 a ml 酒杯中剩下的酒的体积尽可能小,他请求你帮助他设计倾倒的方案。
输入格式
输入共一行两个整数 a 和 b,满足 0<a,b≤109。
输出格式
第一行一个整数 c,表示可以得到的酒的最小体积。
第二行两个整数 Pa 和 Pb(中间用一个空格分隔),分别表示从体积为 a ml 的酒杯中倒出酒的次数和将酒倒入体积为 b ml 的酒杯中的次数。
若有多种可能的 Pa,Pb 满足要求,那么请输出 Pa 最小的一个。若在 Pa 最小的情况下,有多个 Pb 满足要求,请输出 Pb 最小的一个。
输入输出样例
输入#1
5 3
输出#1
1 1 2