Pagini recente » Cod sursa (job #1520833) | Cod sursa (job #1441629) | Cod sursa (job #788403) | Cod sursa (job #1529431) | Cod sursa (job #1910957)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
pair <int, int> x[10002], y[10002];
int vj[102][102], vr[102][102];
int i, j, iv, jv,n, m, d, ur, uj, p;
char a;
int di[]={ 0, 0, -1, +1, -1, +1, -1, +1};
int dj[]={-1, +1, 0, 0, -1, +1, +1, -1};
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin.get();
for(j=1;j<=n;j++)
{
fin.get(a);
if(a=='X')
{
vr[i][j]=0;
vj[i][j]=0;
}
else
if(a=='J')
{
vj[i][j]=1;
uj++;
y[uj].first=i;
y[uj].second=j;
}
else
if(a=='R')
{
vr[i][j]=1;
ur++;
x[ur].first=i;
x[ur].second=j;
}
else
{
vr[i][j]=-1;
vj[i][j]=-1;
}
}
}
p=1;
while(p<=ur)
{
for(d=0;d<=7;d++)
{
iv=x[p].first+di[d];
jv=x[p].second+dj[d];
if(iv>=1&&iv<=n&&jv>=1&&jv<=m&&vr[iv][jv]==0)
{
ur++;
x[ur].first=iv;
x[ur].second=jv;
vr[iv][jv]=vr[x[p].first][x[p].second]+1;
}
}
p++;
}
p=1;
while(p<=uj)
{
for(d=0;d<=7;d++)
{
iv=y[p].first+di[d];
jv=y[p].second+dj[d];
if(iv>=1&&iv<=n&&jv>=1&&jv<=m&&vj[iv][jv]==0)
{
uj++;
y[uj].first=iv;
y[uj].second=jv;
vj[iv][jv]=vj[y[p].first][y[p].second]+1;
if(vj[iv][jv]==vr[iv][jv]&&vr[iv][jv]!=0)
{
fout<<vj[iv][jv]<<" "<<iv<<" "<<jv;
p=uj;
break;
}
}
}
p++;
}
fin.close();
fout.close();
return 0;
}