#P1606. Jugs
Jugs
题目描述
在电影《虎胆龙威3》中,布鲁斯·威利斯和塞缪尔·杰克逊面临这样一个谜题:他们得到一个3加仑的水壶和一个5加仑的水壶,要求在5加仑的水壶中恰好装入4加仑水。本题是该谜题的推广。
你有两个水壶A和B,以及无限的水源。可以执行以下三种操作:
- 装满一个水壶;
- 倒空一个水壶;
- 将一个水壶的水倒入另一个水壶。倒水操作会在源水壶倒空或目标水壶装满时停止。例如,若A中有5加仑水,B中有6加仑水且容量为8,则将A中的水倒入B后,B会装满(8加仑),A中剩余3加仑。
问题由三元组 (Ca, Cb, N) 给出,其中Ca和Cb分别为水壶A和B的容量,N为目标水量。解是一系列操作步骤,使得最终水壶B中恰好有N加仑水。可能的操作步骤包括:
fill A
fill B
empty A
empty B
pour A B
pour B A
success
其中,“pour A B”表示将A中的水倒入B,“success”表示目标达成。
输入数据保证存在解。
输入格式
输入包含多行,每行对应一个谜题,由三个正整数Ca、Cb、N组成。其中Ca和Cb为水壶A和B的容量,N为目标水量。保证0 < Ca ≤ Cb,N ≤ Cb ≤ 1000,且Ca和Cb互质。
输出格式
对于每个谜题,输出一系列操作步骤,使得最终水壶B中恰好有N加仑水。最后一行必须为“success”。输出每行从第1列开始,无空行和行尾空格。
输入示例 1
3 5 4
5 7 3
输出示例 1
fill B
pour B A
empty A
pour B A
fill B
pour B A
success
fill A
pour A B
fill A
pour A B
empty B
pour A B
success
来源
美国中南部地区竞赛 1997