Pagini recente » Cod sursa (job #546379) | Cod sursa (job #2888888) | Cod sursa (job #2715284) | Cod sursa (job #316227) | Cod sursa (job #498108)
Cod sursa(job #498108)
#include <stdio.h>
int di[4] = {0,0,1,-1};
int dj[4] = {1,-1,0,0};
FILE*f = fopen("rj.in","r");
FILE*g = fopen("rj.out","w");
char v[102][102],x;
int rom[102][102],jul[102][102];
int c[3][102*102];
int ri,rj,ji,jj;
int i,j,n,m,p,u,d,ic,iv,jc,jv,min,imin,jmin;
int main(){
fscanf(f,"%d %d\n",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
fscanf(f,"%c",&v[i][j]);
if(v[i][j]=='R'){
ri=i, rj=j;
}
if(v[i][j]=='J'){
ji=i, jj=j;
}
}
fscanf(f,"\n");
}
c[0][1]=ri;
c[1][1]=rj;
rom[ri][rj]=1;
p=u=1;
while(p<=u){
ic=c[0][p];
jc=c[1][p];
for(d=0;d<=3;d++){
iv=ic+di[d];
jv=jc+dj[d];
if(iv>=1 && iv<=n && jv>=1 && jv<=m && v[iv][jv]!='X' && rom[iv][jv]==0){
u++;
c[0][u]=iv;
c[1][u]=jv;
rom[iv][jv]=rom[ic][jc]+1;
}
}
p++;
}
c[0][1]=ji;
c[1][1]=jj;
jul[ji][jj]=1;
p=u=1;
while(p<=u){
ic=c[0][p];
jc=c[1][p];
for(d=0;d<=3;d++){
iv=ic+di[d];
jv=jc+dj[d];
if(iv>=1 && iv<=n && jv>=1 && jv<=m && v[iv][jv]!='X' && jul[iv][jv]==0){
u++;
c[0][u]=iv;
c[1][u]=jv;
jul[iv][jv]=jul[ic][jc]+1;
}
}
p++;
}
min=10003;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if (rom[i][j]!=0 && rom[i][j]==jul[i][j] && rom[i][j]<min){
min = rom[i][j];
imin = i;
jmin = j;
}
}
}
fprintf(g,"%d %d %d",min,imin,jmin);
fclose(f);
fclose(g);
return 0;
}