Pagini recente » Cod sursa (job #237914) | brasov_6_sr | Cod sursa (job #419096) | Profil Saitama | Cod sursa (job #2068547)
#include <fstream>
#include <queue>
using namespace std;
ifstream f("alee.in");
ofstream g("alee.out");
int a[102][102],n,m;
int dx[]={1,0,-1,0};
int dy[]={0,1,0,-1};
struct coord{int x,y;}z,t;
queue <coord> q;
void bordare(int n)
{
int i;
for (i=0;i<=n+1;i++)
a[i][0]=a[i][n+1]=a[0][i]=a[n+1][i]=-1;
}
void lee()
{ int xx,yy,i;
while(!q.empty())
{
z=q.front();
for (i=0;i<4;i++)
{
xx=z.x+dx[i];
yy=z.y+dy[i];
if(a[xx][yy]==0)
{
a[xx][yy]=a[z.x][z.y]+1;
t.x=xx;t.y=yy;
q.push(t);
}
}
q.pop();
}
}
int main()
{ int i,j;
char c;
f>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{
f>>c;
a[i][j]=c-48;
}
bordare(n);
lee();
return 0;
}