#include int q(int x) { int ret; std::cout << "? " << x << std::endl; std::cout << std::flush; std::cin >> ret; return ret; } int main() { int a; a = q(100); if(a == 0) { std::cout << "! 100" << std::endl; return 0; } int min, max, cur, i; min = 1; max = (a > 0)? 1000000000:100; cur = (max - min) / 2; i = 1; for(; i < 100; i++) { a = q(cur); if(a == 0) break; if(a > 0) min = cur + 1; if(a < 0) max = cur - 1; cur = ((max - min) / 2) - 1; } std::cout << "! " << cur + i << std::endl; return 0; }