题目描述:
解题思路:
代码:
#include <stdio.h>
#include <stdlib.h>
#define N 1000
char print_str[6][20] = {{"pour A B"},{"pour B A"},{"fillB"},{"fill A"},{"empty B"},{"empty A"}};
int a, b, n, count, result[N], current[2], flag[N][N];
int find()
{
int c[2],tmp, i, f;
if(current[0]==0&& current[1]==0){
return 1;
}else{
f = 0;
flag[current[0]][current[1]] = 1;
c[0] = current[0];
c[1] = current[1];
//pour A B
if((current[0]<a &¤t[1]==b)||(current[0]==0)){
if(current[0]!=0){
tmp = a - current[0];
current[0] = a;
current[1] = b-tmp;
}else{
if(current[0]+current[1]<a){
current[0] = current[1];
current[1] = 0;
}else{
current[1] = current[1] - a;
current[0] = a;
}
}
result[count] = 0;
count ++;
if(flag[current[0]][current[1]] == 0){
f = find();
if(f)