Pagini recente » Cod sursa (job #875979) | Cod sursa (job #1035693) | Rating Maria Lazar (Maria977) | Cod sursa (job #2040053) | Cod sursa (job #1130052)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
struct coada {int l,c;} C[10001],r,j,b,p;
int a[101][101],n,m,prim,ultim,i,k;
char v[101];
int main()
{
f>>n>>m;
for (i=1; i<=n; i++)
{f.get();
f.get(v,101);
for (k=0; k<=m; k++)
{
switch(v[k]){
case ' ': {a[i][k+1]=1; break;}
case 'R': {r.l=i; r.c=k+1; a[i][k+1]=2; break;}
case 'J': {j.l=i; j.c=k+1; a[i][k+1]=2; break;}}
}
}
/*for (i=1; i<=n; i++) {
for (k=1; k<=m; k++) {g<<a[i][k]<<" ";} g<<'\n';}*/
prim=ultim=0;
int dl[]={-1,-1,0,1,1,1,0,-1};
int dc[]={0,1,1,1,0,-1,-1,-1};
C[0].l=r.l; C[0].c=r.c;
while (prim<=ultim)
{
p=C[prim++];
for (i=0; i<=7; i++)
{
b.l=p.l+dl[i];
b.c=p.c+dc[i];
if (a[b.l][b.c]==1)
{
a[b.l][b.c]=a[p.l][p.c]+1;
C[++ultim]=b;
}
}
}
prim=ultim=0;
C[0].l=j.l; C[0].c=j.c;
while (prim<=ultim)
{
p=C[prim++];
for (i=0; i<=7; i++)
{
b.l=p.l+dl[i];
b.c=p.c+dc[i];
if (a[b.l][b.c]>a[p.l][p.c]+1||a[b.l][b.c]==1)
{
a[b.l][b.c]=a[p.l][p.c]+1;
C[++ultim]=b;
}
else if (a[b.l][b.c]==a[p.l][p.c]+1)
{
g<<a[b.l][b.c]-1<<" "<<b.l<<" "<<b.c;
break;
}
}
}
/*for (i=1; i<=n; i++) {
for (k=1; k<=m; k++) {g<<a[i][k]<<" ";} g<<'\n';}*/
/*for (i=prim1; i<=ultim1; i++)
for (j=prim2; j<=ultim2; j++)
{
if (R[i].l==J[i].l && R.[i].c==R[i].c)
{
g<<R[i].l<<" "<<R[i].c<<" "<<a[R[i].l][R[i].c]; break;
}
}
}*/
return 0;
}