比赛 20161116 评测结果 WWWWWWWWWW
题目名称 删除他们! 最终得分 0
用户昵称 dududu 运行时间 0.332 s
代码语言 C++ 内存使用 17.45 MiB
提交时间 2016-11-16 10:51:38
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<stack>
using namespace std;

const int KN =1000005;
vector<bool> data[KN];
int N,M,Q,ans;
int x1,y1,x2,y2,least;

inline int query(){
	int res=0;
	for(int i=x1;i<=x2;i++)
		for(int j=y1;j<=y2;j++)
			if(!data[i][j]) res++;
	return res;
}

inline void maintain(){
	int end_y=ans%M,end_x=ans/M;
	for(int i=0;i<end_y;i++){
		data[N-end_x-1][M-i-1]=1;
	}
	if(end_x>least) least=end_x;
	else return;
	for(int i=end_x-1;i>=0;i--){
		int pos=N-i-1;
		for(int j=0;j<M;j++) data[pos][j]=1;
	}
	
}


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++) data[i].resize(M+5); 
	for(int i=1;i<=Q;i++){
		scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
		ans+=query();
		maintain();
	}
	printf("%d",ans);
	return 0;
}