Pagini recente » Cod sursa (job #63440) | Cod sursa (job #1432543) | Cod sursa (job #106596) | Cod sursa (job #233117) | Cod sursa (job #501876)
Cod sursa(job #501876)
#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[120],*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;
ifstream fcin("rj.in");
ofstream fcout("rj.out");
fcin.getline(car,120);
num1=strtok(car," ");n=atol(num1);
num2=strtok(NULL," ");m=atol(num2);
for(i=1;i<=n;i++)
{
fcin.getline(car,120);
for(j=0;j<=m-1;j++)
{
if(car[j]=='R')
{
a[i][j+1]=1;
x1=i;
yy=j+1;
}
else if(car[j]=='J')
{
b[i][j+1]=1;
x2=i;
y2=j+1;
}
else if(car[j]=='X'){
a[i][j+1]=-1;
b[i][j+1]=-1;
}
else{
a[i][j+1]=0;
b[i][j+1]=0;
}
}
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";}
cout<<"\n";
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
cout<<b[i][j]<<" ";
cout<<"\n";}
cout<<"\n";
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++;
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";}
cout<<"\n";
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=n;i>=1;i--)
for(j=m;j>=1;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;
}