Pagini recente » Cod sursa (job #1674056) | Cod sursa (job #1682450) | Cod sursa (job #1121641) | Cod sursa (job #431258) | Cod sursa (job #336840)
Cod sursa(job #336840)
#include<stdio.h>
struct lee{
short a,b;
};
lee u[62510];
int dr=1,st,N,S,v[251][251],dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1};
char mar;
int ver(int AA,int BB)
{
if(AA>N||AA<1)
return 0;
if(BB>N||BB<1)
return 0;
if(v[AA][BB]==0)
return 1;
return 0;
}
void calc(int NR)
{
for(int i=1;i<=4;++i)
{
if(ver(u[NR].a+dx[i],u[NR].b+dy[i]))
{
u[dr].a=u[NR].a+dx[i];
u[dr].b=u[NR].b+dy[i];
v[u[dr].a][u[dr].b]=v[u[NR].a][u[NR].b]+1;
++dr;
}
}
}
int main()
{
freopen("muzeu.in","r",stdin);
freopen("muzeu.out","w",stdout);
scanf("%d\n",&N);
for(int i=1;i<=N;++i)
{
for(int j=1;j<=N;++j)
{
scanf("%c",&mar);
if(mar=='#')
v[i][j]=-1;
else if(mar=='P')
{
v[i][j]=1;
u[dr].a=i;
u[dr].b=j;
++dr;
}
}
scanf("\n");
}
for(st=0;st<dr;++st)
{
calc(st);
}
for(int i=1;i<=N;++i)
{
for(int j=1;j<=N;++j)
printf("%d ",v[i][j]-1);
printf("\n");
}
}