Pagini recente » Cod sursa (job #2805764) | Borderou de evaluare (job #1244186) | Cod sursa (job #1489018) | Cod sursa (job #1562632) | Cod sursa (job #2557788)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int n, m, mat[101][101];
char chr;
const int addLin[]={-1,-1,-1,0,1,1,1,0};
const int addCol[]={-1,0,1,1,1,0,-1,-1};
struct Pos{
int lin, col;
};
Pos r, j;
void scan(){
fin>>n>>m;
for(int i=1; i<=n; i++){
fin.get();
for(int jo=1; jo<=m; jo++){
fin.get(chr);
if(chr=='X'){
mat[i][jo]=-1;
}else if(chr==' '){
mat[i][jo]=0;
}else if(chr=='R'){
mat[i][jo]=0;
r.lin=i;
r.col=jo;
}else{
mat[i][jo]=0;
j.lin=i;
j.col=jo;
}
}
}
}
void border(){
for(int i=0; i<=n+1; i++){
mat[i][0]=mat[i][n+1]=-1;
}
for(int j=1; j<=n; j++){
mat[0][j]=mat[n+1][j]=-1;
}
}
queue<Pos> q;
int in=0, sf=0;
Pos ngh, a,b;
void lee(){
mat[r.lin][r.col]=mat[j.lin][j.col]=1;
q.push(r);
q.push(j);
while(!q.empty()){
a=q.front();
q.pop();
for(int i=0; i<8; i++){
ngh.lin=a.lin+addLin[i];
ngh.col=a.col+addCol[i];
if(mat[ngh.lin][ngh.col]==0){
mat[ngh.lin][ngh.col]=mat[a.lin][a.col]+1;
q.push(ngh);
}
}
}
fout<<mat[a.lin][a.col]<<" ";
}
int max_lin=a.lin, max_col=a.col;
void coord(){
for(int i=1; i<=a.lin; i++){
for(int j=1; j<=a.col; j++){
if(mat[i][j]==mat[a.lin][a.col] && max_lin<=i && max_col<=j){
max_lin=i;
max_col=j;
}
}
}
}
int main(){
scan();
border();
lee();
coord();
fout<<max_lin<<" "<<max_col;
}