#include #include #include #include #include using namespace std; const bool TEST=false; int manhattan(int x1,int y1,int x2,int y2){ return abs(x1-x2)+abs(y1-y2); } int getcount=0; int get(int x,int y){ getcount++; if(TEST){ return manhattan(x,y,810,1919); } printf("%d %d\n",x,y); int mh; int _=scanf("%d",&mh); return mh; } int main(){ random_device rd; mt19937 mt(rd()); array a; a[0]=a[1]=100000/2; a[2]=get(a[0],a[1]); while(a[2]){ array b; uniform_int_distribution<> xdist(a[0]-a[2],a[0]+a[2]); uniform_int_distribution<> ydist(a[1]-a[2],a[1]+a[2]); b[0]=xdist(mt); b[1]=ydist(mt); b[2]=get(b[0],b[1]); if(TEST){ printf("%d,%d,%d\n",b[0],b[1],b[2]); } if(a[2]>b[2]) a=b; } if(TEST){ printf("getcount=%d\n",getcount); } return 0; }