Pagini recente » Cod sursa (job #1675764) | chestii | Cod sursa (job #1797864) | Cod sursa (job #2492352) | Cod sursa (job #145775)
Cod sursa(job #145775)
#include<fstream.h>
ifstream f("rj.in");
ofstream g("rj.out");
const dimmax=10000,nmax=102;
typedef struct{int c,l;}element;
int a[nmax][nmax],b[nmax][nmax],n,m,min;
int col[9]={0,0,1,0,-1,-1,1,-1,1};
int lin[9]={0,1,0,-1,0,-1,1,1,-1};
element rom,jul,q;
void citire(){
int i,j,k;
char c[100];
f>>n>>m;
f.get();
for(i=1;i<=n;i++)
{ f.getline(c,100);
for(j=1;j<=m;j++)
{
if(c[j-1]==' '){a[i][j]=-1;b[i][j]=-1;}
else
if(c[j-1]=='X'){a[i][j]=-2;b[i][j]=-1;}
else
if(c[j-1]=='R'){rom.c=j; rom.l=i;a[i][j]=1;b[i][j]=1;}
else
if(c[j-1]=='J'){jul.l=i; jul.c=j;a[i][j]=1;b[i][j]=1;}
}
}
}
void bordare(){
int i,j;
for(i=0;i<=n;i++)
{a[i][m+1]=-2;b[i][m+1]=-2;
a[i][0]=-2; b[i][0]=-2;
}
for(i=0;i<=m;i++)
{a[0][i]=-2; b[0][i]=-2;
a[n+1][i]=-2;b[n+1][i]=-2;
}}
int lee(element p,){
int csf1=0,cinc1=0,i,j,k;
element x1,y1;
element c1[nmax];
c1[csf1]=p;
while(csf1>=cinc1)
{ x1=c1[cinc1++];
for(k=1;k<9;k++)
{ y1.c=x1.c+col[k];
y1.l=x1.l+lin[k];
if(a[y1.l][y1.c]==-1){c1[csf1++]=y1; a[y1.l][y1.c]=a[x1.l][x1.c]+1; }
}
}
return 0;}
int main(){int i,j;
citire();
bordare();
lee();
cout<<min<<" "<<q.l<<" "<<q.c;
cout<<"\n";
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n"; }
return 0;}