Pagini recente » Cod sursa (job #3126103) | Cod sursa (job #2147824) | Cod sursa (job #2029523) | Cod sursa (job #2601994) | Cod sursa (job #2395972)
#include <fstream>
#include <cstring>
#include <cmath>
#define x first
#define y second
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int v[101][101];
int zid[101][101];
int n,m,i,j,u,p,ic,jc,iv,jv;
char s[210];
pair <int,int> c[100001];
int d;
int di[8]={-1,-1,-1, 0, 0, 1, 1, 1};
int dj[8]={-1, 0, 1,-1, 1,-1, 0, 1};
int main(){
fin>>n>>m;
for(i=1;i<=n;i++){
fin.get();
fin.get(s,101);
for(j=0;j<m;j++){
if(s[j]=='X')
zid[i][j+1]=1;
if(s[j]=='R'){
v[i][j+1]=1;
c[++u].x=i;
c[u].y=j+1;
}
if(s[j]=='J'){
v[i][j+1]=-1;
c[++u].x=i;
c[u].y=j+1;
}
}
}
p=1;
while(p<=u){
ic=c[p].x; jc=c[p].y;
for(d=0;d<8;d++){
iv=ic+di[d]; jv=jc+dj[d];
if(iv<=n && jv<=m && iv>=1 && jv>=1){
if(!zid[iv][jv]){
if(v[iv][jv]==0){
if(v[ic][jc]>0)
v[iv][jv]=v[ic][jc]+1;
else
v[iv][jv]=v[ic][jc]-1;
u++;
c[u].x=iv; c[u].y=jv;
}else{
if(v[iv][jv]+v[ic][jc]==-1 || v[iv][jv]+v[ic][jc]==1){
fout<<fabs(v[iv][jv])<<" "<<iv<<" "<<jv;
return 0;
}
}
}
}
}
p++;
}
return 0;
}