Pagini recente » Cod sursa (job #3230715) | Cod sursa (job #1525528) | Cod sursa (job #2088541) | Cod sursa (job #2284388) | Cod sursa (job #135235)
Cod sursa(job #135235)
#include <fstream.h>
#include <string.h>
char a[105][105];
int b[105][105],c[105][105],nr,xr,yr,xj,yj,n,m;
const int vi[8]={-1,-1,-1,0,0,1,1,1};
const int vj[8]={-1,0,1,-1,1,-1,0,1};
ifstream fin ("rj.in");
ofstream fout("rj.out");
void citire()
{
fin>>n>>m;
for (int i=0;i<=n+1;i++)
{
a[0][i]='X';
a[m+1][i]='X';
}
for (int i=0;i<=m+1;i++)
{
a[i][0]='X';
a[i][n+1]='X';
}
char c[105];
fin.getline (c,105);
for (int i=1;i<=n;i++)
{
fin.getline (c,105);
for (int j=0;j<m;j++)
{
a[i][j+1]=c[j];
if (c[j]=='R')
{
xr=i;
yr=j+1;
a[i][j+1]=' ';
}
else
if (c[j]=='J')
{
xj=i;
yj=j+1;
a[i][j+1]=' ';
}
}
}
}
void matrice(int m[105][105],int x,int y) {
int rx[10000],ry[10000];
rx[0]=x;
ry[0]=y;
m[y][x]=1;
nr=1;
for (int i=0;i<nr;i++)
for (int k=0;k<8;k++)
if (a[rx[i]+vi[k]][ry[i]+vj[k]]==' '&&m[rx[i]+vi[k]][ry[i]+vj[k]]==0)
{
rx[nr]=rx[i]+vi[k];
ry[nr]=ry[i]+vj[k];
m[rx[nr]][ry[nr]]=m[rx[i]][ry[i]]+1;
nr++;
}
}
void minim (){
long min=1000003,xmin=0,ymin=0;
for (int i=1;i<=n;i++)
for (int y=1;y<=m;y++)
if (b[i][y]==c[i][y])
if (b[i][y]<min && b[i][y]!=0)
{
min=b[i][y];
xmin=i;
ymin=y;
}
fout<<min<<" "<<xmin<<" "<<ymin<<"\n";
}
int main()
{
citire();
matrice(b,xr,yr);
matrice(c,xj,yj);
minim();
fin.close();
fout.close();
return 0;
}