Pots




import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


public class Main{
private static Scanner inScanner=new Scanner(System.in);
static List<Nodeo> biao;
static boolean visit[][]=new boolean[105][105];
public static void main(String[] args){
while(inScanner.hasNext()){
int a=inScanner.nextInt();
int b=inScanner.nextInt();
int c=inScanner.nextInt();
for(int i=0;i<105;i++){
for(int j=0;j<105;j++)
visit[i][j]=false;
}
biao=new ArrayList<Nodeo>();
biao.add(new Nodeo(0, 0, "", 0));
visit[0][0]=true;
while(!biao.isEmpty()){
Nodeo node=biao.get(0);
biao.remove(0);
if(node.a==c||node.b==c){
System.out.print(node.pos+"\n"+node.result);
break;
}
int x,y;
//a装满
x=a;y=node.b;
if(!visit[x][y]){
biao.add(new Nodeo(x, y, node.result+"FILL(1)\n", node.pos+1));
visit[x][y]=true;
}
//a倒空
x=0;y=node.b;
if(!visit[x][y]){
biao.add(new Nodeo(x, y, node.result+"DROP(1)\n", node.pos+1));
visit[x][y]=true;
}
//a倒入b中
x=node.a>(b-node.b)?node.a-b+node.b:0;y=b-node.b>node.a?node.a+node.b:b;
if(!visit[x][y]){
biao.add(new Nodeo(x, y, node.result+"POUR(1,2)\n", node.pos+1));
visit[x][y]=true;
}
//b装满
x=node.a;y=b;
if(!visit[x][y]){
biao.add(new Nodeo(x, y, node.result+"FILL(2)\n", node.pos+1));
visit[x][y]=true;
}
//b倒空
x=node.a;y=0;
if(!visit[x][y]){
biao.add(new Nodeo(x, y, node.result+"DROP(2)\n", node.pos+1));
visit[x][y]=true;
}
//b导入a中
y=node.b>(a-node.a)?node.b-a+node.a:0;x=a-node.a>node.b?node.a+node.b:a;
if(!visit[x][y]){
biao.add(new Nodeo(x, y, node.result+"POUR(2,1)\n", node.pos+1));
visit[x][y]=true;
}
if(biao.isEmpty()){
System.out.println("impossible");
break;
}
}
}
}
}
class Nodeo{
int a;
int b;
String result;
int pos;
public Nodeo(int a,int b,String result,int pos){
this.a=a;this.b=b;this.result=result;this.pos=pos;
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值