倒水问题
题目背景
##输入输出已更改,请不要直接提交原先的代码。
题目描述
假定两个水壶$A$和$B$,供水量不限。可以使用三种方法装水:
- 给一个水壶装水;
- 把一个水壶倒空;
- 从一个水壶倒进另一个水壶。
当从一个水壶倒进另一个水壶时,如果第一个水壶倒空,或者第二个水壶装满就不能再倒了。例如,一个水壶$A$是$5$加仑和另一个水壶$B$是$6$加仑,水量是$8$加仑,则从水壶$A$倒进水壶$B$时,让水壶B充满水而水壶$A$剩$3$加仑水。
问题由3个参数:$C_a$,$C_b$和$N$,分别表示水壶$A$和$B$的容量,目标水量$N$。解决问题的目标是,给出一系列倒水的步骤,使水壶$B$中的水量恰好是$N$。
输入输出格式
输入格式
第一行为数据组数$T$。
接下来的$T$行,每行三个数字$C_a$,$C_b$和$N$,意义如题目所示。
$T$不超过$30$组,$0<C_a≤Cb$,$N≤C_b≤1000$,且$C_a$和$C_b$互质。
输出格式
输出共为$T$行,第一个数字为要达成的完成次数$a_i$(题目保证存在解)。
接下来$a_i$个数字,表示各种操作:
- 1操作:$fill A$ 意为给$A$灌满水
- 2操作:$fill B$
- 3操作:$empty A$ 意为将$A$中水倒空
- 4操作:$empty B$
- 5操作:$pour B A$ 意为将$B$中水倒到$A$中(直到$A$满或者$B$中水没有剩余)
- 6操作:$pour A B$
输入输出样例
输入样例 #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,此时请联系管理员修改数据。
如果你的方案比答案差,分数会相应减损。