输入输出已更改,请不要直接提交原先的代码。
假定两个水壶 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 个数字,表示各种操作:
fill A 意为给 A 灌满水。fill B 同上。empty A 意为将 A 中水倒空。empty B 同上。pour B A 意为将 B 中水倒到 A 中(直到 A 满或者 B 中水没有剩余)。pour A B 用上。2
3 5 4
5 7 3
6 2 5 3 5 2 5
6 1 6 1 6 4 6
1
26 29 11
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,此时请联系管理员修改数据。
如果你的方案比答案差,分数会相应减损。