Pagini recente » Cod sursa (job #1258884) | Cod sursa (job #1346116) | Cod sursa (job #2949217) | Cod sursa (job #2169758) | Cod sursa (job #368656)
Cod sursa(job #368656)
#include<fstream.h>
#include<stdio.h>
int vizr[101][101],vizj[101][101],c[1][10001];
int main()
{
char n,m,a[101][101],d[8];
int min=9999,b[1],i,j,p,u,x1,x2,y1,y2;
ifstream f("rj.in");
ofstream g("rj.out");
f>>n>>m;
for(i=0;i<=n+1;i++)
{
for(j=0;j<=m+1;j++)
{
if(i==0||i==n+1||j==0||j==m+1)
{
a[i][j]='X';
}
a[i][j]=f.get();
if(a[i][j]=='R')
{
x1=i;
y1=j;
}
if(a[i][j]=='J')
{
x2=i;
y2=j;
}
}
}
c[0][1]=x1;
c[1][1]=y1;
vizr[x1][y1]=0;
p=u=1;
while(p!=u+1)
{
for(i=-1;i<=1;i++)
{
for(j=-1;j<=1;j++)
{
if(vizr[c[0][(p+i)]][c[1][(p+j)]]!=0)
{
u++;
c[0][u]=c[0][(p+i)];
c[1][u]=c[1][(p+j)];
vizr[c[0][(p+i)]][c[1][(p+j)]]=vizr[c[0][p]][c[1][p]]+1;
}
}
}
p++;
}
c[0][1]=x2;
c[1][1]=y2;
vizj[x2][y2]=0;
p=u=1;
while(p!=u+1)
{
for(i=-1;i<=1;i++)
{
for(j=-1;j<=1;j++)
{
if(vizj[c[0][(p+i)]][c[1][(p+j)]]!=0)
{
u++;
c[0][u]=c[0][(p+i)];
c[1][u]=c[1][(p+j)];
vizj[c[0][(p+i)]][c[1][(p+j)]]=vizj[c[0][p]][c[1][p]]+1;
}
}
}
p++;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(vizr[i][j]==vizj[i][j])
{
if(vizr[i][j]<min)
{
min=vizr[i][j];
b[0]=i;
b[1]=j;
}
}
}
}
f>>min>>b[0]>>b[1];
return 0;
}