Pagini recente » Cod sursa (job #596698) | Cod sursa (job #1227618) | Cod sursa (job #1714931) | Cod sursa (job #2926064) | Cod sursa (job #1623618)
#include <iostream>
#include <fstream>
using namespace std;
const int dlin[8]={-1,0,1,0,-1,-1,1,1};
const int dcol[8]={0,-1,0,1,-1,1,1,-1};
ifstream in("rj.in");
ofstream out("rj.out");
struct poz{
int lin,col;
};
int matr_r[102][102],matr_j[102][102],p,u,n,m,xr,yr,xj,yj;
char l;
poz g[10404],x,y;
int main()
{
in>>n>>m;
in.get(l);
for (int i=0;i<=n+1;i++)
for (int j=0;j<=m+1;j++)
if((i==0)||(j==0)||(i==n+1)||(j==m+1)){
matr_j[i][j]=-1;
matr_r[i][j]=-1;
}
else{
in.get(l);
if(l=='X'){
matr_r[i][j]=-1;
matr_j[i][j]=-1;
}
if(l=='R'){
xr=i;
yr=j;
}
if(l=='J'){
xj=i;
yj=j;
}
}
g[u++]=poz{xr,yr};
matr_r[xr][yr]=1;
while (p<u){
x=g[p++];
for (int d=0;d<8;d++){
y.lin=x.lin+dlin[d];
y.col=x.col+dcol[d];
if(matr_r[y.lin][y.col]==0){
g[u++]=y;
matr_r[y.lin][y.col]=1+matr_r[x.lin][x.col];
}
}
}
g[u++]=poz{xj,yj};
matr_j[xj][yj]=1;
while (p<u){
x=g[p++];
for (int d=0;d<8;d++){
y.lin=x.lin+dlin[d];
y.col=x.col+dcol[d];
if(matr_j[y.lin][y.col]==0){
g[u++]=y;
matr_j[y.lin][y.col]=1+matr_j[x.lin][x.col];
}
}
}
for (int i=0;i<=n+1;i++){
for (int j=0;j<=m+1;j++)
out<<matr_r[i][j]<<' ';
out<<endl;
}
out<<endl;
for (int i=0;i<=n+1;i++){
for (int j=0;j<=m+1;j++)
out<<matr_j[i][j]<<' ';
out<<endl;
}
}