比赛 20161116 评测结果 AWWTTTTTTT
题目名称 删除他们! 最终得分 10
用户昵称 kxxy 运行时间 7.011 s
代码语言 C++ 内存使用 11.76 MiB
提交时间 2016-11-16 11:53:34
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
vector<int>A[1000010];
///*
int n,m,q;
int x1,y1,x2,y2;
int ans=0;
long long sum=0;
inline void deleteit(int xx,int yy,int xxx,int yyy)
{
	for(int i=xx;i<=xxx;i++)
		for(int j=yy;j<=yyy;j++)
			A[i][j]=0;
}
inline void polishing()
{
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
		{
			if(i<n-1&&A[i][j]==0)
			{
				for(int k=i+1;k<n;k++)
					if(A[k][j]==1)
					{
						A[i][j]=1;
						A[k][j]=0;
						break;
					}
			}
			if(j<m-1&&A[i][j]==0)
			{
				for(int k=j+1;k<m;k++)
					if(A[i][k]==1)
					{
						A[i][j]=1;
						A[i][j+1]=0;
						break;
					}
			}
			if(i<n-1&&A[i][j]==0)
			{
				for(int k=0;k<m;k++)
				{
					if(A[i+1][k]==1)
					{
						A[i][j]=1;
						A[i+1][k]=0;
						break;
					}
				}		
			}
		} 
}
inline void summ()
{
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			if(A[i][j]==1)
				sum++;
	printf("%d\n",sum);
}//*/
int main()
{
	freopen("deleteit.in","r",stdin);
	freopen("deleteit.out","w",stdout);
	scanf("%d%d%d",&n,&m,&q);
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			A[i].push_back(1);
	for(int i=0;i<q;i++)
	{
		scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
		deleteit(x1,y1,x2,y2);
		polishing();
	}
	summ();
	return 0;
}