1、发现我的数论真是弱到不行。。。刚开始看到这题的时候以为是隐式图搜索。。。但是没注意到一点就是两个水杯的容量是互质的,也就是说,na mod b能求出0~b-1的所有值(没有严格的证明),所以只要一直从A往B倒水就可以了。。。
#include<cstdio>
int main(){
int ca,cb,n,a,b;
while(scanf("%d%d%d",&ca,&cb,&n)==3){
a=b=0;
while(b!=n){
if(a==0){
a=ca;
printf("fill A\n");
}
if(b==cb){
b=0;
printf("empty B\n");
}
b+=a;a=0;
if(b>cb){
a=b-cb;
b=cb;
}
printf("pour A B\n");
}
printf("success\n");
}
return 0;
}