#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF (1<<29) #define rep(i,n) for(int i=0;i<(int)(n);i++) #define all(v) v.begin(),v.end() #define uniq(v) v.erase(unique(all(v)),v.end()) #define indexOf(v,x) (find(all(v),x)-v.begin()) int solve1(){ int t=0,res; while(1){ cout<<"? "<<0<>res; if(res==0)return t; t++; } } int solve2(){ int lb=50,ub=1000000000+1,t=0; while(1){ int mid=(lb+ub)/2; cout<<"? "<>res; if(res==-1){ ub=mid; }else if(res==0){ return max(0,mid+t); }else{ lb=mid+1; } t++; lb--; ub--; } } int main(){ int res; cout<<"? 50"<>res; if(res==0)cout<<"! "<<50<