#include using namespace std; int Map[205][205]; bool U[205][205]; int get(int x, int y) { if (U[x][y]) return Map[x][y]; int val; printf("%d %d\n", x, y); fflush(stdout); scanf("%d", &val); Map[x][y] = val; U[x][y] = true; return val; } int solve(int x1, int y1, int x2, int y2) { if (x1 > x2 || y1 > y2) return false; int xm = (x1 + x2)/2; int ym = (y1 + y2)/2; if (get(xm, ym) == 0) return true; else if (get(xm, ym) < 0) { if (!solve(xm + 1, y1, x2, y2)) return solve(x1, ym, xm, y2); else return true; } else if (get(xm, ym) > 0) { if (!solve(x1, y1, x2, ym - 1)) return solve(x1, ym, xm, y2); else return true; } return false; } int main() { solve(0, 0, 199, 199); return 0; }