Pagini recente » Cod sursa (job #2641259) | Cod sursa (job #2748881) | Cod sursa (job #2730961) | Cod sursa (job #2483895) | Cod sursa (job #1810679)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rj.in"); ofstream g("rj.out");
string s;
struct{short x,y;} v[10003];
short h,u,a[102][102],n,m,b=1,k=0,i,j,rez,i1,j1;
int verif(short h, short u)
{
if(a[h][u]==0 && h>=1 && h<=n && u>=1 && u<=m
&& (h!=v[1].x || u!=v[1].y) && (h!=v[2].x || u!=v[2].y)) return 1;
else return 0;
}
int main()
{
f>>n>>m; getline(f,s);
for(i=1;i<=n;++i)
{
getline(f,s);
for(j=0;j<m;++j)
{
if(s[j]=='X') a[i][j+1]=-1;
else if(s[j]=='R' || s[j]=='J')
{
++k;
v[k].x=i;
v[k].y=j+1;
}
}
}
while(b<=k)
{
i=v[b].x;
j=v[b].y;
for(int c=-1;c<=1;++c)
{
for(int d=-1;d<=1;++d)
{
h=i+c;
u=j+d;
if(verif(h,u))
{
a[h][u]=a[i][j]+1;
++k;
v[k].x=h;
v[k].y=u;
}
else if(a[h][u]==a[i][j]+1)
{
rez=a[h][u]+1;
i1=h;
j1=u;
b=10000;
}
}
}
++b;
}
g<<rez<<' '<<i1<<' '<<j1;
return 0;
}