#include int hbres(int trying,int ans){ int h=0,b=0,i,j,x[4],y[4]; for(i = 0;i < 4;i++){ x[i] = trying % 10; y[i] = ans % 10; trying/=10; ans/=10; } for(i = 0;i < 4;i++){ if(x[i] == y[i]){h++;} } for(i = 0;i < 4;i++){ for(j = 0;j < 4;j++){ if(x[i] == y[j]){b++;} } } b-=h; return 10*h+b; } int main(void) { int x[16384] = {0},hit,blow,sim,i,j,a,b,c,d; for(a = 0;a <= 9;a++){ for(b = 0;b <= 9;b++){ if(a == b){continue;} for(c = 0;c <= 9;c++){ if(a == c || b == c){continue;} for(d = 0;d <= 9;d++){ if(a == d || b == d || c == d){continue;} x[1000*a+100*b+10*c+d] = 1; } } } } for(i = 0;i <= 9999;i++){ if(x[i] == 0){continue;} printf("%d %d %d %d\n",i/1000,(i%1000)/100,(i%100)/10,i%10); fflush(stdout); scanf("%d%d",&hit,&blow); if(hit == 4){return 0;} for(j = 0;j <= 9999;j++){ if(x[j] == 0){continue;} sim = hbres(j,i); if(10*hit+blow != sim){x[j] = 0;} } } return 0; }