Cod sursa(job #411781)

Utilizator ClasianMunteanu Petre Clasian Data 5 martie 2010 10:03:34
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.37 kb
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
ifstream f("rj.in");
ofstream g("rj.out");
char q;
int min,imin,jmin;
int a[100][100],b[100][100],c[100][100],m,n,k,i,j,sr,sj,nr,nj,v[1000][3],dx[]={-1,0,1,0},dy[]={0,-1,0,1};


void leeR(int i,int j,int k)
{if(a[i][j]!=-1) { b[i][j]=k;
for(int p=0;p<4;p++)if(b[i+dx[p]][j+dy[p]]>k+1||b[i+dx[p]][j+dy[p]]==0)leeR(i+dx[p],j+dy[p],k+1);
			     }
}


void leeJ(int i,int j,int k)
{if(a[i][j]!=-1) { c[i][j]=k;
for(int p=0;p<4;p++)if(c[i+dx[p]][j+dy[p]]>k+1||c[i+dx[p]][j+dy[p]]==0)leeJ(i+dx[p],j+dy[p],k+1);
			     }
}




int main()
{f>>n>>m;
for(i=1;i<=n+1;i++)for(j=1;j<=m+1;j++) { f.get(q);

				     if(q=='R')sr=i,nr=j;
				     else if(q=='J')sj=i,nj=j;
					 else if(q=='X')a[i][j]=-1;
					 

				     }
for(i=0;i<=n+1;i++)a[i][0]=a[i][m+1]=-1;
for(i=0;i<=m+1;i++)a[0][i]=a[n+1][i]=-1;

leeR(sr,nr,1);
leeJ(sj,nj,1);min=3000;
for(i=1;i<=n;i++)for(j=1;j<=m;j++)if (b[i][j]&&b[i][j]==c[i][j]) { v[k++][0]=b[i][j],v[k-1][1]=i,v[k-1][2]=j; 
                                                           if(min>b[i][j])min=b[i][j],imin=i,jmin=j;
							   }
							   


g<<min<<" "<<imin<<" "<<jmin;
							   
							   
f.close();
g.close();




return 0;}