#include #define rep(i, k) for (int i = 0; i < k; i++) #define pair(x, y) make_pair((x), (y)) using namespace std; int MAX = 1000000000; int Q = 0; int ask(int Y){ cout << "? " << (Y-Q) << endl; Q++; int res; cin >> res; return res; } int search(int low,int high){ int mid,res; while(true){ mid = (low +high)/2; res = ask(mid); if (res == 0){ return mid; }else if(res ==1){ low = mid+1; }else{ high = mid-1; } } } int Main(){ int s = ask(100); if(s == 1) return search(101,MAX); if(s == 0) return 100; if(s == -1) return search(10,99); } int main(){ int res = Main(); cout << "! " << res << endl; }