#include<stdio.h>
#include<algorithm>
using namespace std;
int ans[2505]={0},x1[1005],y1[1005],x2[1005],y2[1005],color[1005],N;
void cnt(int l1,int r1,int l2,int r2,int c,int add){
if(l1>r1 || l2>r2) return;
if(add==N){
ans[c]+=(r1-l1+1)*(r2-l2+1);
return;
}
if(l1>x2[add] || l2>y2[add] || r1<x1[add] || r2<y1[add])
cnt(l1,r1,l2,r2,c,add+1);
else{
if(l2<y1[add])
cnt(l1,r1,l2,y1[add]-1,c,add+1);
if(r2>y2[add])
cnt(l1,r1,y2[add]+1,r2,c,add+1);
if(l1<x1[add])
cnt(l1,x1[add]-1,max(y1[add],l2),min(y2[add],r2),c,add+1);
if(r1>x2[add])
cnt(x2[add]+1,r1,max(y1[add],l2),min(y2[add],r2),c,add+1);
}
}
int main(){
int n,m,i,j;
scanf("%d%d%d",&n,&m,&N);
for(i=0;i<N;i++)
scanf("%d%d%d%d%d",&x1[i],&y1[i],&x2[i],&y2[i],&color[i]),x1[i]++,y1[i]++;
ans[1]=n*m;
for(i=0;i<N;i++)
cnt(x1[i],x2[i],y1[i],y2[i],color[i],i+1);
for(i=2;i<=2500;i++)
if(ans[i]>0)
ans[1]-=ans[i];
for(i=1;i<=2500;i++)
if(ans[i]>0)
printf("%d %d\n",i,ans[i]);
}
沒有留言:
張貼留言