比赛 |
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;
}