/** * author: enot.1.10, Vladimir Smykalov (enot.1.10@gmail.com) * created: 12.02.2016 20:05:24 **/ #define __USE_MINGW_ANSI_STDIO 0 #include #define F first #define S second #define pb push_back #define mp make_pair #define forn(i, n) for(int i = 0 ; (i) < (n) ; ++i) #define eprintf(...) fprintf(stderr, __VA_ARGS__),fflush(stderr) #define sz(a) ((int)(a).size()) #define all(a) (a).begin(),a.end() #define pw(x) (1LL<<(x)) using namespace std; typedef long long ll; typedef double dbl; typedef vector vi; typedef pair pi; const int inf = (int)1.01e9; const dbl eps = 1e-9; /* --- main part --- */ #define TASK "1" const int maxn = 210; int a[maxn][maxn]; int N = 200; int s[maxn][maxn]; pi getMove() { forn(i, N) forn(j, N) s[i + 1][j + 1] = s[i][j + 1] + s[i + 1][j] - s[i][j] + 1 - a[i][j]; int score = 0; int xx = -1, yy = -1; forn(i, N) forn(j, N) { int val1 = s[i + 1][j + 1]; int val2 = s[N][N] - s[N][j] - s[i][N] + s[i][j]; int val = min(val1, val2); if (val > score) { score = val; xx = i, yy = j; } } return mp(xx, yy); } int main() { while (1) { pi t = getMove(); printf("%d %d\n", t.F, t.S); fflush(stdout); int x; scanf("%d", &x); if (x == 0) break; if (x > 0) { for (int i = t.F; i < N; ++i) for (int j = t.S; j < N; ++j) a[i][j] = 1; } else { for (int i = 0; i <= t.F; ++i) for (int j = 0; j <= t.S; ++j) a[i][j] = 1; } } #ifdef home eprintf("Time: %d ms\n", (int)(clock() * 1000. / CLOCKS_PER_SEC)); #endif return 0; }