#include <cstdio> #include <algorithm> using namespace std; int a[200][200]; void fnd(int x, int y) { printf("%d %d\n",x,y); fflush(stdout); scanf("%d",&a[x][y]); } bool solve(int x, int y, int sx, int sy) { if (x>sx) return false; if (y>sy) return false; int lx=0,rx=sx,ly=0,ry=sy; while (lx<rx-1 || ly<ry-1 || (x<sx && y<sy && lx<rx-1 && ly<ry-1)) { int hx=(lx+rx)/2; int hy=(ly+ry)/2; if (a[x+hx][y+hy]==0) fnd(x+hx,y+hy); if (a[x+hx][y+hy]==0) return true; if (a[x+hx][y+hy]<0) { lx=hx; ly=hy; } else { rx=hx; ry=hy; } } if (a[x+lx][y+ly]==0) { fnd(x+lx,y+ly); if (a[x+lx][y+ly]==0) return true; } if (a[x+rx][y+ry]==0) { fnd(x+rx,y+ry); if (a[x+rx][y+ry]==0) return true; } if (min(rx-x,sy-ly)<min(sx-lx,ry-y)) { if (solve(x,ly+1,rx-1,sy)) return true; if (solve(lx+1,y,sx,ry-1)) return true; } else { if (solve(lx+1,y,sx,ry-1)) return true; if (solve(x,ly+1,rx-1,sy)) return true; } return false; } int main() { solve(0,0,199,199); return 0; }