Pagini recente » Cod sursa (job #1809556) | Cod sursa (job #561715) | Cod sursa (job #2377497) | Cod sursa (job #765521) | Cod sursa (job #497703)
Cod sursa(job #497703)
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
fstream f("rj.in",ios::in),
g("rj.out",ios::out);
int n,m,a[100][100],b[100][100],i1,j1;
int nr;
void lee(int p,int r);
void lee2(int p,int r);
void fu();
void bordare()
{int i;
for(i=0;i<=n+1;i++)
{
a[i][0]=-4;
a[i][n+1]=-4;
a[0][i]=-4;
a[n+1][i]=-4;
b[i][0]=-4;
b[i][n+1]=-4;
b[0][i]=-4;
b[n+1][i]=-4;
}
}
int main()
{
nr=100;
int i,j,R1,x,R2,J1,J2;
string line,p;
f>>n>>m;
getline(f,p);
x=1;
while(x<=n)
{
getline(f,line);
for(i=0;i<m;i++)
{
p=line[i];
if(p=="X")
{
a[x][i+1]=-1;
b[x][i+1]=-1;
}
if(p=="R")
{
R1=x;
R2=i+1;
a[x][i+1]=-2;
b[x][i+1]=-2;}
if(p=="J")
{
J1=x;J2=i+1;
a[x][i+1]=-3;
b[x][i+1]=-3;
}
}
x++;
}
bordare();
a[R1][R2]=0;
b[J1][J2]=0;
lee(R1,R2);
lee2(J1,J2);
fu();
cout<<nr<<" "<<i1<<" "<<j1;
}
void lee(int p,int r)
{
if(a[p+1][r]==0)
{
a[p+1][r]=a[p][r]+1;
lee(p+1,r);
}
if(a[p-1][r]==0)
{
a[p-1][r]=a[p][r]+1;
lee(p-1,r);
}
if(a[p][r-1]==0)
{
a[p][r-1]=a[p][r]+1;
lee(p,r-1);
}
if(a[p][r+1]==0)
{
a[p][r+1]=a[p][r]+1;
lee(p,r+1);
}
if(a[p-1][r-1]==0)
{
a[p-1][r-1]=a[p][r]+1;
lee(p-1,r-1);
}
if(a[p+1][r+1]==0)
{
a[p+1][r+1]=a[p][r]+1;
lee(p+1,r+1);
}
if(a[p-1][r+1]==0)
{
a[p-1][r+1]=a[p][r]+1;
lee(p-1,r+1);
}
if(a[p+1][r-1]==0)
{
a[p+1][r-1]=a[p][r]+1;
lee(p+1,r-1);
}
}
void lee2(int p,int r)
{
if(b[p+1][r]==0)
{
b[p+1][r]=b[p][r]+1;
lee2(p+1,r);
}
if(b[p-1][r]==0)
{
b[p-1][r]=b[p][r]+1;
lee2(p-1,r);
}
if(b[p][r-1]==0)
{
b[p][r-1]=b[p][r]+1;
lee2(p,r-1);
}
if(b[p][r+1]==0)
{
b[p][r+1]=b[p][r]+1;
lee2(p,r+1);
}
if(b[p-1][r-1]==0)
{
b[p-1][r-1]=b[p][r]+1;
lee2(p-1,r-1);
}
if(b[p+1][r+1]==0)
{
b[p+1][r+1]=b[p][r]+1;
lee2(p+1,r+1);
}
if(b[p-1][r+1]==0)
{
b[p-1][r+1]=b[p][r]+1;
lee2(p-1,r+1);
}
if(b[p+1][r-1]==0)
{
b[p+1][r-1]=b[p][r]+1;
lee2(p+1,r-1);
}
}
void fu()
{
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==b[i][j])
if((a[i][j]<nr)&&(a[i][j]>0))
{
nr=a[i][j];
i1=i;j1=j;
}
}