Cod sursa(job #259529)

Utilizator allynaAlina S allyna Data 15 februarie 2009 14:34:53
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<fstream.h>
#include<iostream.h>
char lin[100];
int a[100][100];
int n,m,ij,jj,ir,jr,ci[10001],cj[10001],xr,xj,yr,yj,b[100][100];
int d[]={-1,0,1,0};
int d1[]={0,1,0,-1};
int lee()
{int p,u,i,j;
 p=u=1;
 ci[u]=xr;
 cj[u]=yr;
 b[xr][yr]=1;
 while(p<=u)
 { for(int k=0;k<=3;k++)
   {int x=ci[p]+d[k];
    int y=cj[p]+d1[k];
    if(a[x][y]!=1&&b[x][y]==0 && x>=1 && x<=n && y>=1 && y<=n )
      {u++;
       ci[u]=x;
       cj[u]=y;
       b[x][y]=b[ci[p]][cj[p]]+1;
       if (x==xj && y==yj)
	  { cout<<x<<y;
	    break;}
       }
   }
  p++;
  }
return u;
}

int main()
 {char d;
  int i,j,tmin=99999;
ifstream in("rj.in");
ofstream out("rj.out");
in>>n>>m;
in.getline(lin,100);
for(i=1;i<=n+1;i++)
	{
	in.getline(lin,100);
	for(j=0;j<m;j++)
	  {if (lin[j]=='X')
	     a[i][j+1]=1;
	   if (lin[j]=='R')
	     {a[i][j+1]=1;
	      xr=i;
	      yr=j+1;
	     }
	   if (lin[j]=='J')
	     {a[i][j+1]=0;
	      xj=i-1;
	      yj=j+1;}
	   }
	}
	in.close();
int u=lee();


out<<b[xj][yj]/2<<" "<<ci[u/2]<<" "<<cj[u/2]<<endl;
out.close();
return 0;
  }