#include #include #include #define df 1 #define step 21 int i=-1; int s=1000000000; int a,b; int ask(){ printf("? %d\n",s); if(df)printf("(i=%d)\n",i); fflush(stdout); int flag; scanf("%d",&flag); return flag; } void ask2(){ int c=(a+b)/2-i; printf("? %d\n",c); if(df)printf("(a,b=%d,%d)\n",a,b); fflush(stdout); int flag; scanf("%d",&flag); if(flag>=0) a=c+i; if(flag<=0) b=c+i; } int main(){ int ret=-1; while(ret==-1){ i++; s/=step; s++; ret=ask(); } a=s+i; b=s*step+i; while(b-a){ i++; ask2(); } printf("! %d\n",a); return 0; } /// confirm df==0 ///