比赛 20110725 评测结果 AAAAAAAAET
题目名称 失落的猴子 最终得分 80
用户昵称 PurpleShadow 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-07-25 11:40:34
显示代码纯文本
#include <cstdio>
#include <cstring>
const int N=1010,K=5010;
struct Color
{
	int x1,y1,x2,y2;
	int l;
} d[K];
int n,m,k;
int next[N][N];
void init()
{
	scanf("%d%d%d",&n,&m,&k);
	int i,j;
	for (i=1;i<=k;++i)
		scanf("%d%d%d%d%d",&d[i].x1,&d[i].y1,&d[i].x2,&d[i].y2,&d[i].l);
	for (i=1;i<=n;++i)
		for (j=1;j<=m+1;++j)
			next[i][j]=j;
}
int G[N][N];
void Cover(int* next,int* G,int l,int r,int c)
{
	int i,x,j;
	while (l<=r)
	{
		for (i=l;i<=r&&next[i]!=i;i=next[i]);
		if (i>r) return;
		for (x=l;x!=i;x=j)
		{
			j=next[x];
			next[x]=i;
		}
		G[i]=c;
		l=next[i]=next[i+1];
	}
}
void slove()
{
	memset(G,0,sizeof(G));
	int i,j;
	for (j=k;j>0;--j)
		for (i=d[j].x1;i<=d[j].x2;++i)
			Cover(next[i],G[i],d[j].y1,d[j].y2,d[j].l);
	for (i=1;i<=n;++i)
	{
		for (j=1;j<=m;++j)
			putchar(G[i][j]+'0');
		putchar('\n');
	}
}
int main()
{
freopen("lostmonkey.in","r",stdin);
freopen("lostmonkey.out","w",stdout);
	init();
	slove();
	return 0;
}