Pagini recente » Cod sursa (job #2407452) | Cod sursa (job #2342157) | Cod sursa (job #3217311) | Cod sursa (job #2966206) | Cod sursa (job #505115)
Cod sursa(job #505115)
#include<fstream.h>
#include<math.h>
#include<iostream.h>
#include<stdio.h>
typedef struct{
int x,y;}COADA;
COADA c[1100];
int a[150][150],b[150][150];
int p,u,xv,yv,xn,x1,x2,y2,n,m,i,j,z,t,timp,ok,min,li,co;
int nn,yy;
int dx[9],dy[9];
char car,*num1,*num2;
int main()
{
dx[1]=-1;dx[2]=0;dx[3]=1;dx[4]=0;dx[5]=-1;dx[6]=1;dx[7]=1;dx[8]=-1;
dy[1]=0;dy[2]=1;dy[3]=0;dy[4]=-1;dy[5]=1;dy[6]=1;dy[7]=-1;dy[8]=-1;
FILE *f=fopen("rj.in","r");
ofstream fcout("rj.out");
fscanf(f,"%d",&n);
fscanf(f,"%d",&m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fscanf(f,"%c",&car);
if(car=='R')
{
a[i][j]=1;
b[i][j]=0;
x1=i;
yy=j;
}
else if(car=='J')
{
b[i][j]=1;
a[i][j]=0;
x2=i;
y2=j;
}
else if(car=='X'){
a[i][j]=-1;
b[i][j]=-1;
}
else if(car==' '){
a[i][j]=0;
b[i][j]=0;
}
else j--;
}
}
p=u=1;
c[u].x=x1;c[u].y=yy;
while(p<=u)
{
xv=c[p].x;
yv=c[p].y;
for(i=1;i<=8;i++)
{
xn=xv+dx[i];
nn=yv+dy[i];
if(xv>=1&&xv<=n&&yv>=1&&yv<=m&&a[xn][nn]==0)
{
a[xn][nn]=a[xv][yv]+1;
c[++u].x=xn;c[u].y=nn;
}
}
p++;
}
p=u=1;
c[u].x=x2;c[u].y=y2;
while(p<=u)
{
xv=c[p].x;
yv=c[p].y;
for(i=1;i<=8;i++)
{
xn=xv+dx[i];
nn=yv+dy[i];
if(xv>=1&&xv<=n&&yv>=1&&yv<=m&&b[xn][nn]==0)
{
b[xn][nn]=b[xv][yv]+1;
c[++u].x=xn;c[u].y=nn;
}
}
p++;
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
cout<<b[i][j]<<" ";
cout<<"\n";}
li=200;co=200;min=100000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==b[i][j]&&a[i][j]<min&&a[i][j]>0){
min=a[i][j];
z=i;
t=j;
}
fcout<<min<<" "<<z<<" "<<t;
return 0;
}