//p5.cpp #include<bits/stdc++.h> using namespace std; int d,x=150,y=150,u=150,dd=150,l=150,r=150; int a[305][305],b[305][305]; int n,m; int dx[]{1,0,-1,0}; int dy[]{0,1,0,-1};//U R D L int flag=1; void dg(int x,int y){ b[x][y]=1; for(int i=0;i<4;i++){ int tx=x+dx[i]; int ty=y+dy[i]; if(a[tx][ty]==0){ flag=0; return ; } if(a[tx][ty]==1&&b[tx][ty]==0){ dg(tx,ty); } } } int main(){ cout<<"RIGHT\n"; string feedback; cin>>feedback; if(feedback=="N") d=2; if(feedback=="E") d=1; if(feedback=="S") d=0; if(feedback=="W") d=3; a[150][150]=1; while(true){ while(true){ int tx=x+dx[d]; int ty=y+dy[d]; if(a[tx][ty]==1&&(a[x-1][y]==0||a[x+1][y]==0||a[x][y-1]==0||a[x][y+1]==0)){ break; } cout<<"GO\n"; cin>>feedback; if(feedback=="FAIL"){ a[tx][ty]=-1; break; } else{ a[tx][ty]=1; x=tx,y=ty; } } if(d==2) u=min(u,x-1); if(d==0) dd=max(dd,x+1); if(d==1) r=max(r,y+1); if(d==3) l=min(l,y-1); u=min(u,x);dd=max(dd,x); r=max(r,y);l=min(l,y); // cout<<dd-u+1<<' '<<r-l+1<<'\n'; // for(int i=u;i<=dd;i++){ // for(int j=l;j<=r;j++){ // if(i==x&&y==j) { // cout<<"X";continue; // } // if(a[i][j]==-1) cout<<"#"; // else if(a[i][j]==0) cout<<"?"; // else cout<<"."; // } // cout<<'\n'; // } // // cout<<d<<'\n'; int gs=0,js=0; while(true){ gs++; if(gs>=4){ js=1; } int td=d; td++; if(td>3) td-=4; int tx=x+dx[td]; int ty=y+dy[td]; cout<<"LEFT\n"; d=td; cin>>feedback; if(a[tx][ty]==0) break; else if(a[tx][ty]==1&&js==1) break; else if(gs>=8){ break; } } flag=1; memset(b,0,sizeof(b)); dg(150,150); if(flag==1){ cout<<"END\n"; break; } } cout<<dd-u+1<<' '<<r-l+1<<'\n'; for(int i=u;i<=dd;i++){ for(int j=l;j<=r;j++){ if(a[i][j]<1) cout<<"#"; else cout<<"."; } cout<<'\n'; } return 0; }