#include #include int ask(int t){ printf("? %d\n",t); fflush(stdout); int f; scanf("%d",&f); return f; } __attribute__((noreturn)) int ans(int t){ printf("! %d\n",t); exit(0); } // cpp_binarysearch (C) @cielavenir under Boost Software License. // type F should be something like std::function. template T binarysearch(T lo,T hi,T eps,const F &checker){ for(int i=1;lo+eps T binarysearch(T lo,T hi,const F &checker){return binarysearch(lo,hi,1,checker);} int main(){ if(ask(35)==-1)for(int i=1;;i++)if(ask(0)==0)ans(i); ans(binarysearch(10,1000000000,ask)); }