Pagini recente » Cod sursa (job #2222963) | Cod sursa (job #359362) | Cod sursa (job #2797732) | Cod sursa (job #1484977) | Cod sursa (job #272680)
Cod sursa(job #272680)
#include<fstream.h>
#include<values.h>
ifstream fin("rj.in");
ofstream fout("rj.out");
char a[101][101];
int rom[101][101];
int jul[101][101];
int n,m;
int l[8]={-1,-1,-1,0,1,1,1,0};
int c[8]={-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=MAXINT;
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;
}