记录编号 351288 评测结果 AAAAAAAAAA
题目名称 删除他们! 最终得分 100
用户昵称 GravatarsrO cwm Orz 是否通过 通过
代码语言 C++ 运行时间 0.547 s
提交时间 2016-11-16 13:50:28 内存使用 1.27 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<cstring>
using namespace std;

const int maxn = 1000000+10;
int n,m,q;
bool map[maxn];
int ans;

/*void work(int a,int b,int c,int d){
	for(int i = a; i <= c; i++)
	for(int j = b; j <= d; j++)map[i][j]=0;
	
	int sum(0);
	
	for(int i = 0; i < n; i++)
	for(int j = 0; j < m; j++)sum += map[i][j];
	
	memset(map,0,sizeof(map));
	
	for(int i = 0; i < n; i++)
	for(int j = 0; j < m; j++){
		if(sum == 0)break;
		sum--;
		map[i][j]=1;
	}
}*/
void work(int a,int b,int c,int d){
	int sum(0);
	for(int i = a; i <= c; i++)
	for(int j = b; j <= d; j++)map[i*m+j]=0;
	for(int i = 0; i < n*m; i++)sum += map[i];
	memset(map,0,sizeof(map));
	for(int i = 0; i < sum; i++){
		map[i] = 1;
	}
}
int main(){
	#ifndef DEBUG
		string FileName="deleteit";
		freopen((FileName+".in").c_str(),"r",stdin);
		freopen((FileName+".out").c_str(),"w",stdout);
	#endif
	scanf("%d%d%d",&n,&m,&q);
	for(int i = 0 ; i < n*m; i++)map[i]=1;
	for(int i = 0; i < q; i++){
		int a,b,c,d;
		scanf("%d%d%d%d",&a,&b,&c,&d);
		work(a,b,c,d);
	}
	for(int i = 0; i < n*m; i++) ans += map[i];
	printf("%d",ans);
}