#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