A22741.倒水问题
普及-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
##输入输出已更改,请不要直接提交原先的代码。
假定两个水壶A和B,供水量不限。可以使用三种方法装水:
- 给一个水壶装水;
- 把一个水壶倒空;
- 从一个水壶倒进另一个水壶。
当从一个水壶倒进另一个水壶时,如果第一个水壶倒空,或者第二个水壶装满就不能再倒了。例如,一个水壶A是5加仑和另一个水壶B是6加仑,水量是8加仑,则从水壶A倒进水壶B时,让水壶B充满水而水壶A剩3加仑水。
问题由3个参数:Ca,Cb和N,分别表示水壶A和B的容量,目标水量N。解决问题的目标是,给出一系列倒水的步骤,使水壶B中的水量恰好是N。
输入格式
第一行为数据组数T。
接下来的T行,每行三个数字Ca,Cb和N,意义如题目所示。
T不超过30组,0<Ca≤Cb,N≤Cb≤1000,且Ca和Cb互质。
输出格式
输出共为T行,第一个数字为要达成的完成次数ai(题目保证存在解)。
接下来ai个数字,表示各种操作:
- 1操作:fillA 意为给A灌满水
- 2操作:fillB
- 3操作:emptyA 意为将A中水倒空
- 4操作:emptyB
- 5操作:pourBA 意为将B中水倒到A中(直到A满或者B中水没有剩余)
- 6操作:pourAB
输入输出样例
输入#1
2 3 5 4 5 7 3
输出#1
6 2 5 3 5 2 5 6 1 6 1 6 4 6
输入#2
1 26 29 11
输出#2
22 1 6 1 6 4 6 1 6 4 6 1 6 4 6 1 6 4 6 1 6 4 6
说明/提示
开启了spj。
如果你的方案比答案优,会提示UKE,此时请联系管理员修改数据。
如果你的方案比答案差,分数会相应减损。