Pagini recente » Cod sursa (job #312511) | Cod sursa (job #51822) | Cod sursa (job #1148492) | Cod sursa (job #1499391) | Cod sursa (job #1378663)
#include <fstream>
#include <string.h>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
int n,m,a[101][101],b[101][101],xs,ys,xf,yf;
int dl[4]={-1,1,0,0};
int dc[4]={0,0,-1,1};
struct d
{
int l,c;
} d[10001];
char c,s[100];
void cit(){
f>>n>>m;
int i,j;
for(i=1;i<=n;i++)
{
f.ignore();
f.get (s,256);int k=strlen(s);
for (j=0;j<k;j++)
{
if (s[j]=='R')
{
xs=i;
ys=j+1;
a[i][j+1]=3;
}
if (s[j]=='J')
{
xf=i;
yf=j+1;
a[i][j+1]=3;
}
if(s[j]=='X')
a[i][j+1]=-1;
}
}
}
void lee()
{
int h,xc,yc,dc1,xn,yn;
int p=1,u=1;
d[p].l=xs;
d[p].c=ys;
dc1=1; b[xs][ys]=1;
while(p<=u)
{
xc=d[p].l;
yc=d[p].c;
dc1=b[xc][yc];
for(h=0;h<=3;h++)
{
xn=xc+dl[h];
yn=yc+dc[h];
if(((a[xn][yn]==0)||(a[xn][yn]==3))&&(b[xn][yn]==0)&&(xn>0)&&(xn<=n)&&(yn>0)&&(yn<=m))
{
u++;
d[u].l=xn;
d[u].c=yn;
b[xn][yn]=dc1+1;
}
}
p++;
}
}
int main()
{
cit(); int l,i,j;
lee();
if((b[xf][yf]-1)%2==0)
l=b[xf][yf]/2;
else
l=b[xf][yf]/2+1;
g<<l<<" ";
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(b[i][j]==1+l){
g<<i<<" "<<j;
break;}
return 0;
}