记录编号 |
548487 |
评测结果 |
AAAAAAAAAAAAAAAA |
题目名称 |
[POI 1999] 位图 |
最终得分 |
100 |
用户昵称 |
ZooxTark➲ |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
2.831 s |
提交时间 |
2020-01-20 17:01:52 |
内存使用 |
13.94 MiB |
显示代码纯文本
#define dis(a,b,c,d) (((a > c)? a - c : c - a) + ((b > d)? b - d : d - b))
#include <iostream>
#include <cstdio>
#include <limits.h>
using namespace std;
bool bitmap[182][182];
int ct;
struct tagwhit
{
int x,y;
}white[33124];
int f(int x,int y)
{
if(bitmap[x][y])
return 0;
else
{
int iTemp = INT_MAX,t;
for(int i = 0;i < ct;i++)
{
t = dis(x,y,white[i].x,white[i].y);
if(t < iTemp)
{
iTemp = t;
}
}
return iTemp;
}
}
int main()
{
freopen("bit.in","r",stdin);
freopen("bit.out","w",stdout);
int m,n;
cin >> n >> m;
char bit;
for(int i = 0;i < n;i++)
{
for(int j = 0;j < m;j++)
{
cin >> bit;
if(bit == '1')
{
bitmap[i][j] = true;
white[ct].x = i;
white[ct].y = j;
ct++;
}
}
}
for(int i = 0;i < n;i++)
{
for(int j = 0;j < m;j++)
{
cout << f(i,j) << " ";
}
cout << endl;
}
return 0;
}