Cod sursa(job #500762)

Utilizator myshuSpatariu Mihai-Constantin myshu Data 12 noiembrie 2010 23:44:38
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#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;
}