Pagini recente » Cod sursa (job #1688359) | Cod sursa (job #1985435) | Cod sursa (job #1053058) | Cod sursa (job #320392) | Cod sursa (job #350345)
Cod sursa(job #350345)
#include<fstream.h>
ifstream f("rj.in");
ofstream g("rj.out");
int p,u,t,v[10001][10001],n,m,r[101][101],l[101][101],i,j,x,y,dy[8]={0,1,1,1,0,-1,-1,-1},dx[8]={-1,-1,0,1,1,1,0,-1},x1,y1;
char c;
int main(){
f>>n>>m;
//citirea matricei
for(i=1;i<=n;i++){
f.get();
for(j=1;j<=m;j++){
c=f.get();
if(c=='X'){
l[i][j]=r[i][j]=1;
}
else if(c=='R'){x1=i;
y1=j;r[x1][y1]=-1;
}
else if(c=='J')
{ x=i;
y=j;l[x][y]=-1; } } }
//traseul lui Romeo
p=1;u=1; v[0][1]=x1;
v[1][1]=y1;
while(p<=u){
for(i=0;i<=7;i++){
if(v[0][p]+dx[i]<=m&&v[0][p]+dx[i]>=1&&v[1][p]+dy[i]<=m&&v[1][p]+dy[i]>=1&&r[v[0][p]+dx[i]][v[1][p]+dy[i]]==0)
{ r[v[0][p]+dx[i]][v[1][p]+dy[i]]=r[v[0][p]][v[1][p]]-1;
u++;
v[0][u]=v[0][p]+dx[i];
v[1][u]=v[1][p]+dy[i];
}
}
p++;
}
//traseul Julietei
v[0][1]=x;
v[1][1]=y;
p=1;u=1;
while(p<=u){
for(i=0;i<=7;i++){
if(v[0][p]+dx[i]<=m&&v[0][p]+dx[i]>=1&&v[1][p]+dy[i]<=m&&v[1][p]+dy[i]>=1&&l[v[0][p]+dx[i]][v[1][p]+dy[i]]==0)
{ l[v[0][p]+dx[i]][v[1][p]+dy[i]]=l[v[0][p]][v[1][p]]-1;
u++;
v[0][u]=v[0][p]+dx[i];
v[1][u]=v[1][p]+dy[i];
}
}
p++;
}
//vedem locul unde s-au intalnit
t=20000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(r[i][j]<0&&r[i][j]==l[i][j]&&-r[i][j]<t)
{ t=-r[i][j];
x=i;
y=j;}
g<<t<<" "<<x<<" "<<y;
return 0;
}