import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int g[][] = new int[107][107];
StringBuilder nb=new StringBuilder();
ok d = new ok(0, 0,nb);
ArrayDeque<ok> queue = new ArrayDeque<ok>();
queue.add(d);
boolean cnm = false;
while (!queue.isEmpty())
{
ok h=queue.poll();
int left=h.a;int right=h.b;StringBuilder str=h.str;
if (left==c||right==c)
{
System.out.println(str.length());
int jk[]=new int[str.length()];
for (int i = 0; i < jk.length; i++)
{
jk[i]=str.charAt(i)-'0';
}
for (int i = 0; i < jk.length; i++)
{
deal(jk[i]);
}
cnm=true;
break;
}
if (g[left][right]==0 )
{
g[left][right]=1;
if (g[a][right]==0 )
{ StringBuilder cnmb= new StringBuilder () ;for (int i = 0; i < str.length(); i++)cnmb.append(str.charAt(i));
cnmb=cnmb.append(1);
ok kkp=new ok(a, right, cnmb);
queue.add(kkp);
}
//
if (g[left][b]==0 )
{
StringBuilder cnmb= new StringBuilder () ;for (int i = 0; i < str.length(); i++)cnmb.append(str.charAt(i));
cnmb=cnmb.append(2);
ok kkp=new ok(left, b, cnmb);
queue.add(kkp);
}
//
if (g[0][right]==0 )
{
StringBuilder cnmb= new StringBuilder () ;for (int i = 0; i < str.length(); i++)cnmb.append(str.charAt(i));
cnmb=cnmb.append(3);
ok kkp=new ok(0, right, cnmb);
queue.add(kkp);
}
//
if (g[left][0]==0)
{
StringBuilder cnmb= new StringBuilder () ;for (int i = 0; i < str.length(); i++)cnmb.append(str.charAt(i));
cnmb=cnmb.append(4);
ok kkp=new ok(left, 0, cnmb);
queue.add(kkp);
}
//
int all=left+right;int p1l=0;int p1r=0; int p2l=0;int p2r=0;
if (all<=b)
{
p1l=0;p1r=all;
}else {
p1l=all-b;p1r=b;
}
if (all<=a)
{
p2l=all;p2r=0;
}else {
p2l=a;p2r=all-a;
}
if (g[p1l][p1r]==0)
{
StringBuilder cnmb= new StringBuilder () ;for (int i = 0; i < str.length(); i++)cnmb.append(str.charAt(i));
cnmb=cnmb.append(5);
ok kkp=new ok(p1l, p1r, cnmb);
queue.add(kkp);
}
//
if (g[p2l][p2r]==0 )
{
StringBuilder cnmb= new StringBuilder () ;for (int i = 0; i < str.length(); i++)cnmb.append(str.charAt(i));
cnmb=cnmb.append(6);
ok kkp=new ok(p2l, p2r, cnmb);
queue.add(kkp);
}
//
}
}
if (cnm == false)
{
System.out.println("impossible");
}
}
public static void deal(int x)
{
switch (x)
{
case 1:
System.out.println("FILL(1)");
break;
case 2:
System.out.println("FILL(2)");
break;
case 3:
System.out.println("DROP(1)");
break;
case 4:
System.out.println("DROP(2)");
break;
case 5:
System.out.println("POUR(1,2)");
break;
case 6:
System.out.println("POUR(2,1)");
break;
default:
break;
}
}
}
class ok
{
int a, b;
int x[][];
StringBuilder str=new StringBuilder();
public ok(int a, int b, StringBuilder str)
{
this.a = a;
this.b = b;
this.x = x;
this.str = str;
}
}
I - Pots POJ - 3414
最新推荐文章于 2020-10-16 08:50:13 发布