/*************************************************** * Alex Palcuie * Romania - 2016 * alex [dot] palcuie [at] gmail [dot] com * http://blog.palcu.ro/ ****************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int N = 4; const int INF = 0x3f3f3f3f; int m[N][N]; void get(int x, int y) { if (m[x][y]) return; else { cout << x << " " << y << "\n"; cout.flush(); cin >> m[x][y]; if (m[x][y] == 0) exit(0); } } int main() { int x1=0, x2=N-1; int y1=0, y2=N-1; int mid; while (true) { mid = (x1 + x2) / 2; get(0, mid); get(0, mid-1); if (m[0][mid-1] < 0 && m[0][mid] > 0) { mid = mid-1; break; } get(0, mid+1); if (m[0][mid+1] > 0 && m[0][mid] < 0) { break; } if (m[0][mid] > 0) { x2 = mid - 1; } else { x1 = mid + 1; } } while (true) { int ymid = (y1 + y2) / 2; get(ymid, mid); get(ymid+1, mid); get(ymid-1, mid); if (m[ymid][mid] > 0) { y2 = ymid-1; } else { y1 = mid+1; } } return 0; }