题面修复
查看原帖
题面修复
1285950
4041nofoundGeoge楼主2024/12/8 19:30

倒水问题

题目背景

输入输出已更改,请不要直接提交原先的代码。

题目描述

假定两个水壶 AABB,供水量不限。可以使用三种方法装水:

  • 给一个水壶装水;
  • 把一个水壶倒空;
  • 从一个水壶倒进另一个水壶。

当从一个水壶倒进另一个水壶时,如果第一个水壶倒空,或者第二个水壶装满就不能再倒了。例如,一个水壶 AA55 加仑和另一个水壶 BB66 加仑,水量是 88 加仑,则从水壶 AA 倒进水壶 BB 时,让水壶 BB 充满水而水壶 AA33 加仑水。

问题由 33 个参数:CaC_aCbC_bNN,分别表示水壶 AABB 的容量,目标水量 NN。解决问题的目标是,给出一系列倒水的步骤,使水壶 BB 中的水量恰好是 NN

输入格式

第一行为数据组数 TT

接下来的 TT 行,每行三个数字 CaC_aCbC_bNN,意义如题目所示。

TT 不超过 3030 组,0<CaCb0<C_a≤CbNCb1000N≤C_b≤1000,且 CaC_aCbC_b 互质。

输出格式

输出共为 TT 行,第一个数字为要达成的完成次数 aia_i(题目保证存在解)。

接下来 aia_i 个数字,表示各种操作:

  • 操作 11fill A 意为给 AA 灌满水。
  • 操作 22fill B 同上。
  • 操作 33empty A 意为将 AA 中水倒空。
  • 操作 44empty B 同上。
  • 操作 55pour B A 意为将 BB 中水倒到 AA 中(直到 AA 满或者 BB 中水没有剩余)。
  • 操作 66pour A B 用上。

样例 #1

样例输入 #1

2
3 5 4 
5 7 3

样例输出 #1

6 2 5 3 5 2 5 
6 1 6 1 6 4 6

样例 #2

样例输入 #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,此时请联系管理员修改数据。

如果你的方案比答案差,分数会相应减损。

2024/12/8 19:30
加载中...