#P1606. Jugs

Jugs

题目描述

在电影《虎胆龙威3》中,布鲁斯·威利斯和塞缪尔·杰克逊面临这样一个谜题:他们得到一个3加仑的水壶和一个5加仑的水壶,要求在5加仑的水壶中恰好装入4加仑水。本题是该谜题的推广。

你有两个水壶A和B,以及无限的水源。可以执行以下三种操作:

  1. 装满一个水壶;
  2. 倒空一个水壶;
  3. 将一个水壶的水倒入另一个水壶。倒水操作会在源水壶倒空或目标水壶装满时停止。例如,若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