Pagini recente » Cod sursa (job #2015896) | Cod sursa (job #125965) | Profil Maria3033 | Monitorul de evaluare | Cod sursa (job #943932)
Cod sursa(job #943932)
#include<fstream>
#include<queue>
#define NM 260
using namespace std;
ifstream f("muzeu.in");
ofstream g("muzeu.out");
int dx[]={0,0,0,1,-1};
int dy[]={0,1,-1,0,0};
queue<int> qx,qy;
char m[NM][NM];
int e[NM][NM],i,j,n,xc,yc;
int main ()
{
f>>n;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
{
f>>m[i][j];
if(m[i][j]=='P')
qx.push(i),qy.push(j);
}
while(!qx.empty())
{
for(i=1;i<=4;++i)
{
xc=qx.front()+dx[i];
yc=qy.front()+dy[i];
if(xc<1||yc<1||xc>n||yc>n||e[xc][yc])
continue;
if(m[xc][yc]=='.')
{
e[xc][yc]=e[qx.front()][qy.front()]+1;
qx.push(xc),qy.push(yc);
}
}
qx.pop(),qy.pop();
}
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
if(e[i][j]==0)
{
if(m[i][j]=='#')
e[i][j]=-2;
if(m[i][j]=='.')
e[i][j]=-1;
}
g<<e[i][j]<<" ";
}
g<<"\n";
}
return 0;
}