#include <stdio.h>
#define ROW 2
#define COLUMN 100
int FLAG(int new4,int new3,int i);
int a[ROW][COLUMN]={0};
int main(void)
{
int new4=0,new3=0;
int i,pre4,pre3;
int g=a[0][0]+a[1][0];
printf("4L=%d,3L=%d,Goukei=%d\n",a
[0][0],a
[1][0],g
);
for(i=1;i<100;i++){ //
pre4=a[0][i-1];
pre3=a[1][i-1];
g=pre4+pre3;
if(pre4==2 && pre3==0){
printf("-終了-\n"); // [2] [0]の状態で終了 を表示 return 0;
}
while (1) {
if(pre4<4){ // 4Lが4未満なら、4L=4、3L=そのまま
new4=4;
new3=pre3;
if (FLAG(new4,new3,i)) break;
}
if(pre3<3){ // 3Lが3未満なら、4L=そのまま、3L=3
new4=pre4;
new3=3;
if (FLAG(new4,new3,i)) break;
}
if(pre4>0){ // 4Lが0超えなら、4L=0、3L=そのまま
new4=0;
new3=pre3;
if (FLAG(new4,new3,i)) break;
}
if(pre3>0){ // 3Lが0超えなら、4L=そのまま、3L=0
new4=pre4;
new3=0;
if (FLAG(new4,new3,i)) break;
}
// 合計が3以上、4Lが0超え、3Lが3未満なら、4L=合計-3、3L=3
if(g>=3 && pre4>0 && pre3<3){
new4=pre4+pre3-3;
new3=3;
if (FLAG(new4,new3,i)) break;
}
// 合計が4以上、4Lが4未満、3Lが0超えなら、4L=4、3L=合計-4
if(g>=4 && pre4<4 && pre3>0){
new3=pre4+pre3-4;
new4=4;
if (FLAG(new4,new3,i)) break;
}
// 合計が4未満、4Lが4未満、3Lが0超えなら、4L=全部、3L=0
if(g<4 && pre4<4 && pre3>0){
new4=pre4+pre3;
new3=0;
if (FLAG(new4,new3,i)) break;
}
// 合計が3未満、4Lが0超え、3Lが3未満なら、4L=0、3L=全部
if(g<3 && pre4>0 && pre3<3){
new3=pre4+pre3;
new4=0;
if (FLAG(new4,new3,i)) break;
}
return 1;
}
a[0][i]=new4;
a[1][i]=new3;
g=a[0][i]+a[1][i];
printf("4L=%d,3L=%d,Goukei=%d\n",a
[0][i
],a
[1][i
],g
); }
}
// 戻り値:0=履歴にあり(試行未決定)1=履歴になし(試行決定)
int FLAG(int new4,int new3,int i)
{
int j;
for(j=0;j<i;j++){
if(new4==a[0][j] && new3==a[1][j]){
return 0;
}
}
return 1;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFJPVyAyCiNkZWZpbmUgQ09MVU1OIDEwMAoKaW50IEZMQUcoaW50IG5ldzQsaW50IG5ldzMsaW50IGkpOwoKaW50IGFbUk9XXVtDT0xVTU5dPXswfTsKCmludCBtYWluKHZvaWQpCnsKCWludCBuZXc0PTAsbmV3Mz0wOwoJaW50IGkscHJlNCxwcmUzOwoJaW50IGc9YVswXVswXSthWzFdWzBdOwoKCXByaW50Zigi5rC05beu44GX5ZWP6aGMXG4iKTsKCXByaW50ZigiNEw9JWQsM0w9JWQsR291a2VpPSVkXG4iLGFbMF1bMF0sYVsxXVswXSxnKTsKCglmb3IoaT0xO2k8MTAwO2krKyl7CS8vCgkJcHJlND1hWzBdW2ktMV07CgkJcHJlMz1hWzFdW2ktMV07CgkJZz1wcmU0K3ByZTM7CgkJaWYocHJlND09MiAmJiBwcmUzPT0wKXsKCQkJcHJpbnRmKCIt57WC5LqGLVxuIik7IC8vIFsyXSBbMF3jga7nirbmhYvjgafntYLkuoYg44KS6KGo56S6CgkJCXJldHVybiAwOwoJCX0KCQl3aGlsZSAoMSkgewoJCQlpZihwcmU0PDQpewkvLyA0TOOBjDTmnKrmuoDjgarjgonjgIE0TD0044CBM0w944Gd44Gu44G+44G+CgkJCQluZXc0PTQ7CgkJCQluZXczPXByZTM7CgkJCQlpZiAoRkxBRyhuZXc0LG5ldzMsaSkpIGJyZWFrOwoJCQl9CgkJCWlmKHByZTM8Myl7CS8vIDNM44GMM+acqua6gOOBquOCieOAgTRMPeOBneOBruOBvuOBvuOAgTNMPTMKCQkJCW5ldzQ9cHJlNDsKCQkJCW5ldzM9MzsKCQkJCWlmIChGTEFHKG5ldzQsbmV3MyxpKSkgYnJlYWs7CgkJCX0KCQkJaWYocHJlND4wKXsJLy8gNEzjgYww6LaF44GI44Gq44KJ44CBNEw9MOOAgTNMPeOBneOBruOBvuOBvgoJCQkJbmV3ND0wOwoJCQkJbmV3Mz1wcmUzOwoJCQkJaWYgKEZMQUcobmV3NCxuZXczLGkpKSBicmVhazsKCQkJfQoJCQlpZihwcmUzPjApewkvLyAzTOOBjDDotoXjgYjjgarjgonjgIE0TD3jgZ3jga7jgb7jgb7jgIEzTD0wCgkJCQluZXc0PXByZTQ7CgkJCQluZXczPTA7CgkJCQlpZiAoRkxBRyhuZXc0LG5ldzMsaSkpIGJyZWFrOwoJCQl9CgkJCS8vIOWQiOioiOOBjDPku6XkuIrjgIE0TOOBjDDotoXjgYjjgIEzTOOBjDPmnKrmuoDjgarjgonjgIE0TD3lkIjoqIgtM+OAgTNMPTMKCQkJaWYoZz49MyAmJiBwcmU0PjAgJiYgcHJlMzwzKXsKCQkJCW5ldzQ9cHJlNCtwcmUzLTM7CgkJCQluZXczPTM7CgkJCQlpZiAoRkxBRyhuZXc0LG5ldzMsaSkpIGJyZWFrOwoJCQl9CgkJCS8vIOWQiOioiOOBjDTku6XkuIrjgIE0TOOBjDTmnKrmuoDjgIEzTOOBjDDotoXjgYjjgarjgonjgIE0TD0044CBM0w95ZCI6KiILTQKCQkJaWYoZz49NCAmJiBwcmU0PDQgJiYgcHJlMz4wKXsKCQkJCW5ldzM9cHJlNCtwcmUzLTQ7CgkJCQluZXc0PTQ7CgkJCQlpZiAoRkxBRyhuZXc0LG5ldzMsaSkpIGJyZWFrOwoJCQl9CgkJCS8vIOWQiOioiOOBjDTmnKrmuoDjgIE0TOOBjDTmnKrmuoDjgIEzTOOBjDDotoXjgYjjgarjgonjgIE0TD3lhajpg6jjgIEzTD0wCgkJCWlmKGc8NCAmJiBwcmU0PDQgJiYgcHJlMz4wKXsKCQkJCW5ldzQ9cHJlNCtwcmUzOwoJCQkJbmV3Mz0wOwoJCQkJaWYgKEZMQUcobmV3NCxuZXczLGkpKSBicmVhazsKCQkJfQoJCQkvLyDlkIjoqIjjgYwz5pyq5rqA44CBNEzjgYww6LaF44GI44CBM0zjgYwz5pyq5rqA44Gq44KJ44CBNEw9MOOAgTNMPeWFqOmDqAoJCQlpZihnPDMgJiYgcHJlND4wICYmIHByZTM8Myl7CgkJCQluZXczPXByZTQrcHJlMzsKCQkJCW5ldzQ9MDsKCQkJCWlmIChGTEFHKG5ldzQsbmV3MyxpKSkgYnJlYWs7CgkJCX0KCQkJcHJpbnRmKCIt6Kej44Gq44GXLVxuIik7CgkJCXJldHVybiAxOwoJCX0KCQlhWzBdW2ldPW5ldzQ7CgkJYVsxXVtpXT1uZXczOwoJCWc9YVswXVtpXSthWzFdW2ldOwoJCXByaW50ZigiNEw9JWQsM0w9JWQsR291a2VpPSVkXG4iLGFbMF1baV0sYVsxXVtpXSxnKTsKCX0KfQoKLy8g5oi744KK5YCk77yaMD3lsaXmrbTjgavjgYLjgorvvIjoqabooYzmnKrmsbrlrprvvIkxPeWxpeattOOBq+OBquOBl++8iOippuihjOaxuuWumu+8iQppbnQgRkxBRyhpbnQgbmV3NCxpbnQgbmV3MyxpbnQgaSkKewoJaW50IGo7CgoJZm9yKGo9MDtqPGk7aisrKXsKCQlpZihuZXc0PT1hWzBdW2pdICYmIG5ldzM9PWFbMV1bal0pewoJCQlyZXR1cm4gMDsKCQl9Cgl9CglyZXR1cm4gMTsKfQo=
水差し問題
4L=0,3L=0,Goukei=0
4L=4,3L=0,Goukei=4
4L=4,3L=3,Goukei=7
4L=0,3L=3,Goukei=3
4L=3,3L=0,Goukei=3
4L=3,3L=3,Goukei=6
4L=4,3L=2,Goukei=6
4L=0,3L=2,Goukei=2
4L=2,3L=0,Goukei=2
-終了-