ZOJ1005

Jugs

Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge

IIn the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with the following puzzle. They were given a 3-gallon jug and a 5-gallon jug and were asked to fill the 5-gallon jug with exactly 4 gallons. This problem generalizes that puzzle.
在电影《虎胆龙威3》中,布鲁斯·威利斯和塞缪尔·杰克逊被面对着接连不断的难题。他们被给了一个3加仑大小的壶和一个5加仑大小的壶并且被要求获得5加仑的壶中要装着4加仑的东西。这个问题包括那个难题。

You have two jugs, A and B, and an infinite supply of water. There are three types of actions that you can use: (1) you can fill a jug, (2) you can empty a jug, and (3) you can pour from one jug to the other. Pouring from one jug to the other stops when the first jug is empty or the second jug is full, whichever comes first. For example, if A has 5 gallons and B has 6 gallons and a capacity of 8, then pouring from A to B leaves B full and 3 gallons in A.
你有两个壶,A壶和B壶,和无限的水。那里有种步骤你可以使用:(1)你可以装满一个壶,(2)你可以清空一个壶,和(3)你可以将一个壶的水倒进另一个壶。将一个壶的水倒进另一个壶时,只有一个壶满了或者空了才能停止。例如,如果壶A有5加仑B壶有6加仑和容量为8,然后将A中的水导入B中,离开时B满,A有3加仑水。

A problem is given by a triple (Ca,Cb,N), where Ca and Cb are the capacities of the jugs A and B, respectively, and N is the goal. A solution is a sequence of steps that leaves exactly N gallons in jug B. The possible steps are

fill A
fill B
empty A
empty B
pour A B
pour B A
success

一个问题是由一个三(Ca,Cb,N),Ca和Cb就是壶A和壶B,独立的,并且N就是目标。一个解决方案的步骤是留N加仑的水在壶B中。允许的步骤是
装满A
装满B
清空A
清空B
将A中的水倒入B中
将B中的水倒入A中
成功

where "pour A B" means "pour the contents of jug A into jug B", and "success" means that the goal has been accomplished.

"pour A B"的意思是将A中的水倒入B中,"success"代表目标达成。

You may assume that the input you are given does have a solution.

你可能要假定你输入是有解决方案的。

Input

输入

Input to your program consists of a series of input lines each defining one puzzle. Input for each puzzle is a single line of three positive integers: Ca, Cb, and N. Ca and Cb are the capacities of jugs A and B, and N is the goal. You can assume 0 < Ca <= Cb and N <= Cb <=1000 and that A and B are relatively prime to one another.

输入的一系列程序要使问题明确。输入一行要三个正整数:Ca,Cb和N。Ca和Cb代表壶A和壶B,N代表目标。你可以假设Ca≥0和1000≥Cb≥N和A和B可以互相倒水。

Output

输出

Output from your program will consist of a series of instructions from the list of the potential output lines which will result in either of the jugs containing exactly N gallons of water. The last line of output for each puzzle should be the line "success". Output lines start in column 1 and there should be no empty lines nor any trailing spaces.

输出将包括一系列操作可以使其中一个壶得到N加仑的水。最后一行输出“成功”。输出的第一行不能是空行或者空格。


Sample Input
3 5 4
5 7 3


Sample Output
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


Source: Zhejiang University Local Contest 2001

posted @ 2017-03-12 21:07  RunningYY  阅读(209)  评论(0)    收藏  举报