Cod sursa(job #342161)

Utilizator PopaStefanPopa Stefan PopaStefan Data 20 august 2009 18:34:06
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include<fstream.h>
#include<values.h>

ifstream fin("rj.in");
ofstream fout("rj.out");

char a[200][200];
int rom[200][200];
int jul[200][200];
int n,m;
int l[10]={-1,-1,-1,0,1,1,1,0};
int c[10]={-1,0,1,1,1,0,-1,-1};

void citire()
{int i,j;
fin>>n>>m;
fin.get();
for(i=0;i<n;i++)
  {fin.get(a[i],101);
  fin.get();
  }
for(i=0;i<n;i++)
 for(j=0;j<m;j++)
   if(a[i][j]=='R') rom[i][j]=1;
     else if(a[i][j]=='J') jul[i][j]=1;
}

void lee()
{int gata=0,ii,jj,i,j,k,x,y;
int pas=1,min;
min=32767;
while(!gata)
 {gata=1;
 for(i=0;i<n;i++)
     for(j=0;j<m;j++)
       {if(rom[i][j]==pas)
      for(k=0;k<8;k++)
         {ii=i+l[k];
         jj=j+c[k];
	 if(ii>=0 && ii<n && jj>=0 && jj<m)
           if(a[ii][jj]==' ' && rom[ii][jj]==0)
         {rom[ii][jj]=pas+1;gata=0;}
         }

       if(jul[i][j]==pas)
       for(k=0;k<8;k++)
         {ii=i+l[k];
         jj=j+c[k];
	 if(ii>=0 && ii<n && jj>=0 && jj<m)
           if(a[ii][jj]==' ' && jul[ii][jj]==0)
         {jul[ii][jj]=pas+1;gata=0;}
         }
      }
 pas++;
 }
for(i=0;i<n;i++)
  for(j=0;j<m;j++)
    if(rom[i][j]!=0 && rom[i][j]==jul[i][j] && jul[i][j]!=0)
			 if(rom[i][j]<min)
			 {min=rom[i][j];
			  x=i;y=j;
			  }
			     else if(rom[i][j]==min && j<=y)
				     {min=rom[i][j];
				     x=i;y=j;
				     }
fout<<min<<" "<<x+1<<" "<<y+1;
}

int main()
{citire();
lee();
fin.close();
fout.close();
return 0;
}