#P3414. Pots
Pots
题目描述
给你两个罐子,容量分别为 A 升和 B 升。可以执行以下操作:
- FILL(i):将罐子 i (1 ≤ i ≤ 2)从水龙头装满水;
- DROP(i):将罐子 i 倒空到下水道;
- POUR(i,j):将罐子 i 的水倒入罐子 j,直到罐子 j 装满或罐子 i 倒空。
请编写程序,找到通过最少操作在某个罐子中恰好得到 C 升水的操作序列。
输入
输入仅一行,包含三个整数 A、B、C(1 ≤ A,B ≤ 100,C ≤ max(A,B))。
输出
若可行,第一行输出操作序列的长度 K,接下来 K 行依次输出每个操作。若有多个最短序列,输出任意一个即可。若无法实现,输出 "impossible"。
输入示例 1
3 5 4
输出示例 1
6
FILL(2)
POUR(2,1)
DROP(1)
POUR(2,1)
FILL(2)
POUR(2,1)
题目来源
Northeastern Europe 2002, Western Subregion