Pagini recente » Cod sursa (job #2519107) | Cod sursa (job #600235) | Cod sursa (job #2167355) | Cod sursa (job #1977806) | Cod sursa (job #1418954)
#include<fstream>
#include<cstring>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
int i,j,n,m,rx,ry,jx,jy,q[102][102],o,p,w[102][102],r;
char a[100];
void afisare(int e[102][102]){
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
g<<e[i][j]<<" ";
g<<'\n';
}
}
void citire(){
f.get();
for(i=1;i<=n;i++){
f.get(a,100);
for(j=0;j<m;j++)
if(a[j]=='X'){
q[i][j+1]=1;
w[i][j+1]=1;
}
else{
q[i][j+1]=r;
w[i][j+1]=r;
if(a[j]=='R'){
rx=i;
ry=j+1;
}
if(a[j]=='J'){
jx=i;
jy=j+1;
}
}
f.get();
}
}
void lee(int e[102][102],int x,int y,int k){
if(x>1 && e[x-1][y]>k+1){
e[x-1][y]=k+1;
lee(e,x-1,y,k+1);
}
if(x<n && e[x+1][y]>k+1){
e[x+1][y]=k+1;
lee(e,x+1,y,k+1);
}
if(y>1 && e[x][y-1]>k+1){
e[x][y-1]=k+1;
lee(e,x,y-1,k+1);
}
if(y<m && e[x][y+1]>k+1){
e[x][y+1]=k+1;
lee(e,x,y+1,k+1);
}
}
int cautare(){
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(q[i][j]==w[i][j] && q[i][j]!=1 && q[i][j]!=r){
g<<i<<" "<<j<<" "<<q[i][j]-2;
return 0;
}
return 0;
}
int main(){
f>>n>>m;
r=n*m;
citire();
q[rx][ry]=2;
lee(q,rx,ry,2);
w[jx][jy]=2;
lee(w,jx,jy,2);
cautare();
f.close();
g.close();
return 0;
}