题目:2152:Pots(OpenJudge - 2152:Pots)
翻译:
你有两个罐子,体积分别是A升和B升。可以执行以下操作:
1.FILL(i) 从龙头注满壶i(1≤i≤2);
2.DROP(i) 将(i)容器i中的水全部清空,倒入排水口;
3.POUR (i) 将水从第i个壶倒入第j个壶;在这个操作之后,罐子j是满的(可能还有一些水留在罐子i),或者罐子i是空的(它的所有内容已经被移到罐子j)。
写一个程序,找出这些操作的最短的可能序列,使其中一个罐子里恰好有C升水。
输入
在第一行也是唯一一行输入数字A,B,和C,这些都是在1到100范围内的整数并且C≤max(A,B)。
输出
输出的第一行必须包含操作序列K的长度。下面的K行必须每一行用来描述一个操作。如果有几个最小长度的序列,则输出其中任何一个。如果结果无法实现,输出有且只有一行的“impossible”。
样例输入
3 5 4
样例输出
6 FILL(2) POUR(2,1) DROP(1) POUR(2,1) FILL(2) POUR(2,1)