记录编号 549407 评测结果 AAAAAAAAAAAAAAAA
题目名称 [POI 1999] 位图 最终得分 100
用户昵称 GravatarHAC DOG 是否通过 通过
代码语言 C++ 运行时间 2.685 s
提交时间 2020-02-10 21:36:30 内存使用 14.21 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

int main()
{
	freopen("bit.in","r",stdin);
	freopen("bit.out","w",stdout);
	int n,m;
	cin>>n>>m;
	
	char a[183][183];
	int c[33125][2];
	int b[33125][2];
	int l1=0,l2=0;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
	{
		cin>>a[i][j];
		if(a[i][j]=='0')
		{
			b[++l1][0]=i;
			b[l1][1]=j; 
		}
		else
		{
			c[++l2][0]=i;
			c[l2][1]=j; 
		} 
	}
	
	int y[183][183]={0};
	for(int i=1;i<=l1;i++)
	{
		y[b[i][0]][b[i][1]]=0x3f3f3f3f;
		for(int j=1;j<=l2;j++)
		{
			y[b[i][0]][b[i][1]]=min(abs(b[i][0]-c[j][0])+abs(b[i][1]-c[j][1]),y[b[i][0]][b[i][1]]);
		} 
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
	    cout<<y[i][j]<<" ";
	    cout<<endl;
	} 
	 
	return 0; 
}