Pagini recente » Cod sursa (job #529053) | Cod sursa (job #2395039) | Cod sursa (job #840528) | Cod sursa (job #2288251) | Cod sursa (job #432459)
Cod sursa(job #432459)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
const int dab[4]={0,1,0,-1};
const int dor[4]={1,0,-1,0};
struct bfs
{
int absc,ordon;
}t[10001],x,y;
char v[100][100];
int ro[100][100],ju[100][100],n,m,minim=10001,absc,ordon,a1,b1,a2,b2;
void lee(int absc, int ordon, int c[100][100])
{
int a=1,b=1,i;
t[1].absc=absc;
t[1].ordon=ordon;
while(a<=b)
{
x=t[a++];
for(i=0;i<4;i++)
{
y.absc=x.absc+dab[i];
y.ordon=x.ordon+dor[i];
if(v[y.absc][y.ordon]==' '&&c[y.absc][y.ordon]==0&&y.absc>=0&&y.absc<n&&y.ordon>=0&&y.ordon<m)
{
t[++b]=y;
c[y.absc][y.ordon]=c[x.absc][x.ordon]+1;
}
}
}
}
int main()
{
int i,j;
f>>n>>m;
f.getline(v[0],100);
for(i=0;i<n;i++)
{
f.getline(v[i],100);
for(j=0;j<m;j++)
{
if(v[i][j]=='R')
{
a1=i;
b1=j;
}
else
if(v[i][j]=='J')
{
a2=i;
b2=j;
}
}
}
lee(a1,b1,ro);
lee(a2,b2,ju);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(v[i][j]==' '&&ro[i][j]==ju[i][j]&&ro[i][j]&&minim>ro[i][j])
{
minim=ro[i][j];
absc=i;
ordon=j;
}
}
}
g<<minim<<" "<<absc+1<<" "<<ordon+1;
return 0;
}