Pagini recente » Cod sursa (job #197697) | Cod sursa (job #2728470) | Cod sursa (job #2643253) | Cod sursa (job #1680083) | Cod sursa (job #2244485)
#include <fstream>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int n,m,xj,yj,xr,u,yr,x[101][101];
int dlin[9]={0, 1, 1, 1, 0, -1, -1, -1 };
int dcol[9]={1, 1, 0, -1, -1, -1, 0, 1};
typedef struct {int x,y;}COORD;
COORD c[10001];
void citire()
{int j,i;
char l[101];
fin>>n>>m;
fin.getline(l,100);
for(i=0; i<n; i++)
{fin.getline(l,100);
for(j=0; j<m; j++)
{if(l[j] == 'X')
x[i][j] = -1;
if(l[j] == 'J')
{xj=i;
yj=j;
}
if(l[j] == 'R')
{xr=i;
yr=j;
}}
}
}
int LEE()
{ COORD s;
int p,i,xn,yn;
p=u=1;
c[1].x=xr;
c[1].y=yr;
x[xr][yr]=1;
while(p<=u && !x[xj][yj])
{s=c[p++];
for(i=0; i<9; i++)
{ xn=s.x+dlin[i];
yn=s.y+dcol[i];
if(!x[xn][yn] && xn<n && xn>=0 && yn<m && yn>=0)
{
x[xn][yn]=1+x[s.x][s.y];
c[++u].x=xn;
c[u].y=yn;
}
}
}
return x[xj][yj]-1;
}
int main()
{citire();
int p,i;
p=LEE();
for(i=1; i<=u; i++)
fout<<c[i].x<<' '<<c[i].y<<'\n';
fout<<(p+1)/2+1<<' '<<c[(p+1)/2+2].x+1<<' '<<c[(p+1)/2+2].y+1;
return 0;
}