#include #include #include #include #include #include #define REP(i,n) for(int i=0;i (b)) ? (a) : (b)) #define mini(a,b) (((a) > (b)) ? (a) : (b)) #define OUTL(a) cout << (a) << endl using namespace std; int main() { //cin.tie(0); //ios::sync_with_stdio(false); /********************************************************/ long long min = 1; long long max = 1000000000; long long mid = (min + max) / 2; long long midbef = 0; long long in; for (int i = 0; i < 100; i++) { cout << "? " << mid << endl; cin >> in; if (abs(max - min) <= 1) { cout << "! " << mid << endl; return 0; } if (in) { min = mid; } else { max = mid; } midbef = mid; mid = (min + max) / 2; } /********************************************************/ return 0; }