#include<iostream> #include<fstream> #include<stdlib.h> using namespace std; int n=200,t[205][205],x,y,v; int k[]={-1,0, 0,1, 1,0, 0,-1}; int kovx[30000]; int kovy[30000],db,i; bool fal[205][205]; void init() { int i; for(i=0;i<=n+1;++i) { fal[i][0]=1; fal[i][n+1]=1; fal[0][i]=1; fal[n+1][i]=1; } } void kiir() { ofstream g("out.txt"); int i,j; for(i=0;i<n+2;++i) { for(j=0;j<n+2;++j) g<<t[i][j]<<" "; g<<"\n"; } g.close(); } void min(int &x,int &y) { int i,j,min=1000000; for(i=1;i<=n;++i) { for(j=1;j<=n;++j) if(t[i][j]!=0&&abs(t[i][j])<min) { min=t[i][j]; x=i; y=j; } } x=x+1-1; } void min2(int &x,int &y,int a,int b) { int i,j,min=1000000; for(i=1;i<=n;++i) for(j=1;j<=n;++j) if(t[i][j]!=0&&abs(t[i][j])<min&&(i!=a||j!=b)) { min=t[i][j]; x=i; y=j; } x=x+1-1; } bool tal; int x2,y2; void megy(int x,int y) { for(i=0;i<8;i+=2) if(!fal[x+k[i]][y+k[i+1]]&&t[x+k[i]][y+k[i+1]]==0) { x2=x+k[i]; y2=y+k[i+1]; tal=1; return; } for(i=0;i<8;i+=2) if(!fal[x+k[i]][y+k[i+1]]) { kovx[db]=x+k[i]; kovy[db++]=y+k[i+1]; } } void legkoz(int &x,int &y) { tal=0; db=1; kovx[0]=x; kovy[0]=y; int i=0; while(i<db&&!tal) { megy(kovx[i],kovy[i]); ++i; } x=x2; y=y2; } void fel() { x=0; y=0; cout<<x<<" "<<y<<"\n"; cout.flush(); cin>>v; t[x+1][y+1]=v; if(v!=0) { x=1; y=1; cout<<x<<" "<<y<<"\n"; cout.flush(); cin>>v; t[x+1][y+1]=v; } int a,b,c,d; while(v!=0){ //kiir(); min(a,b); //min2(c,d,a,b); /*x=a+a-c; y=b+b-d; if(x<1) x=1; if(y<1) y=1; if(x>200) x=200; if(y>200) y=200;*/ x=a; y=b; if(t[x][y]!=0) legkoz(x,y); cout<<x-1<<" "<<y-1<<"\n"; cout.flush(); cin>>v; t[x][y]=v; } } int main() { init(); fel(); return 0; }