Pagini recente » Cod sursa (job #220458) | Cod sursa (job #39842) | Cod sursa (job #365231) | Cod sursa (job #1483495) | Cod sursa (job #500762)
Cod sursa(job #500762)
#include<fstream.h>
int main ()
{
ifstream fcin("rj.in");
ofstream fcout("rj.out");
int n,m,i,j,dx[9]={0,-1,-1,-1,0,0,1,1,1},dy[9]={0,-1,0,1,-1,1,-1,0,1},p=1,u=1,a[102][102],cx[102],cy[102],x,y;
char s[102][102];
fcin>>n>>m;
for(i=0;i<=n;i++)
fcin.getline(s[i],100);
for(i=1;i<=n;i++)
for(j=0;j<=m-1;j++)
if(s[i][j]==' ')a[i][j+1]=0;
else if(s[i][j]=='X')a[i][j+1]=-1;
else if(s[i][j]=='R'){a[i][j+1]==1;cx[1]=i;cy[1]=j+1;}
else {x=i;y=j+1;}
for(i=1;i<=n;i++)
{a[0][i]=-2;a[i][m+1]=-2;}
for(i=1;i<=m;i++)
{a[i][0]=-2;a[n+1][i]=-2;}
while(cx[p]!=x&&cy[p]!=y)
{for(i=1;i<=8;i++)
if(a[cx[p]+dx[i]][cy[p]+dy[i]]==0){a[cx[p]+dx[i]][cy[p]+dy[i]]=a[cx[p]][cy[p]]+1;cx[++u]=cx[p]+dx[i];cy[u]=cy[p]+dy[i];}
p++;}
fcout<<a[cx[p]][cy[p]]/2+1<<' ';
while(a[x][y]!=a[cx[p]][cy[p]]/2)
for(i=1;i<=8;i++)
if(a[x+dx[i]][y+dy[i]]==a[x][y]-1){x=x+dx[i];y=y+dy[i];break;}
fcout<<x<<' '<<y<<'\n';
return 0;
}