Pagini recente » Cod sursa (job #458969) | Cod sursa (job #1433408) | Cod sursa (job #723275) | Cod sursa (job #1323069) | Cod sursa (job #2054431)
#include <fstream>
ifstream fin("rj.in");
ofstream fout("rj.out");
char a[102][102];
int lee[102][102],f[102][102];
int cx[10001],cy[10001];
int dx[8]={-1,-1,-1,0,+1,+1,+1,0};
int dy[8]={-1,0,+1,+1,+1,0,-1,-1};
int main()
{
int n,m,i,j,p,u,x1,y1,x2,y2,z,lmin,cmin,min;
char cucu;
fin>>n>>m;
fin>>cucu;
for(i=1; i<=n; i++)
for(j=1; j<=m+1; j++)
fin>>a[i][j];
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(a[i][j]=='R')
x1=i,y1=j;
else
if(a[i][j]=='J')
x2=i,y2=j;
p=u=1;
cx[1]=x1;
cy[1]=y1;
f[x1][y1]=1;
a[x2][y2]=' ';
while(p<=u)
{
for(i=0; i<8; i++)
if(f[cx[p]+dx[i]][cy[p]+dy[i]]==0 && a[cx[p]+dx[i]][cy[p]+dy[i]]==' ')
u++,cx[u]=cx[p]+dx[i],cy[u]=cy[p]+dy[i],f[cx[u]][cy[u]]=f[cx[p]][cy[p]]+1;
p++;
}
p=u=1;
cx[1]=x2;
cy[1]=y2;
lee[x2][y2]=1;
a[x1][y1]=' ';
cmin=lmin=200;
min=500;
/*for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
printf("%2d ",f[i][j]);
printf("\n");
}*/
while(p<=u)
{
for(i=0; i<8; i++)
if(lee[cx[p]+dx[i]][cy[p]+dy[i]]==0 && a[cx[p]+dx[i]][cy[p]+dy[i]]==' ')
if(lee[cx[p]][cy[p]]+1<z)
u++,cx[u]=cx[p]+dx[i],cy[u]=cy[p]+dy[i],lee[cx[u]][cy[u]]=lee[cx[p]][cy[p]]+1;
p++;
}
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(f[i][j]==lee[i][j] && f[i][j]<min && f[i][j]!=0)
{
min=f[i][j];
lmin=i;
cmin=j;
}
fout<<tmin<<" "<<lin<<" "<<col<<"\n";
return 0;
}