#include int main() { long long int i; long long int x[32], xx; long long int min, mid, max; min = 0; max = 1e6; printf("? -100000000\n"); fflush(stdout); x[0] = -1e8; long long int res; for (xx = 1; max - min > 1; xx++) { mid = (max + min) / 2; x[xx] = 2 * mid - x[xx - 1]; printf("? %lld\n", x[xx]); fflush(stdout); scanf("%lld", &res); if (res < 0) return 0; if (x[xx - 1] < min) { if (res > 0) min = mid - 1; else max = mid; } else { if (res == 0) min = mid - 1; else max = mid; } } printf("! %lld\n", max); fflush(stdout); return 0; }