Pagini recente » Cod sursa (job #2435755) | Cod sursa (job #1178096) | Statistici Muhammad Cooper (2charlottee423tc7) | Cod sursa (job #2249112) | Cod sursa (job #2205599)
#include <fstream>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
struct nod
{
int l, c, d;
nod *urm;
};
nod *p, *u;
int n, m, xs, ys;
char a[100][100];
int b1[100][100];
int b2[100][100];
int dl[8]={-1, -1, -1, 0, 0, 1, 1, 1};
int dc[8]={-1, 0, 1, -1, 1, -1, 0, 1};
void lee(int b[100][100])
{
int i, j, d, in, jn, dn, h;
nod *q;
p = 0;
u = 0;
p = new nod;
p->l = xs; p->c = ys; p->d = 1; p->urm = 0;
u = p;
b[xs][ys] = 1;
while (p != 0)
{
i = p->l; j = p->c; d = p->d;
for (h=0; h<8; h++)
{
in = i + dl[h];
jn = j + dc[h];
dn = d + 1;
if (in>0 && jn>0 && in<m+1 && jn<n+1 && a[in][jn] == ' ' && b[in][jn] == 0)
{
b[in][jn] = dn;
q = new nod;
q->l = in; q->c = jn; q->d = dn;
q->urm = 0;
u->urm = q;
u = q;
}
}
q = p;
p = p->urm;
delete q;
}
}
int main(){
fin>>m>>n;
int i,j;
int r1,r2,j1,j2;
fin.get();
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
a[i][j]=fin.get();
if(a[i][j]=='R')
{
r1=i;r2=j;
}
if(a[i][j]=='J')
{
j1=i;j2=j;
}
}
fin.get();
}
fin.close();
xs=r1;ys=r2;
lee(b1);
xs=j1;ys=j2;
lee(b2);
int Min=100000,x0,y0;
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
if(b1[i][j]==b2[i][j] && b1[i][j]!=0)
if(Min>b1[i][j])
{
Min=b1[i][j];
x0=i;y0=j;
}
}
}
fout<<Min<<" "<<x0<<" "<<y0;
fout.close();
return 0;
}