为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
Sgu/177
来自NOCOW
< Sgu
//by hza #include<cstdio> const int MAX=5000+100; struct rec { int x1,x2,y1,y2; char color; }r[MAX]; int n,m; int ans_black; void calc(int i,int x1,int y1,int x2,int y2,char color) { if(x1>x2||y1>y2)return; if(i==m+1&&color=='b'){ans_black+=(x2-x1+1)*(y2-y1+1);return;} if(r[i].x1>x2||r[i].y1>y2||r[i].x2<x1||r[i].y2<y1) { calc(i+1,x1,y1,x2,y2,color); return; } if(r[i].x1>=x1&&r[i].x1<=x2) { calc(i+1,x1,y1,r[i].x1-1,y2,color); x1=r[i].x1; } if(r[i].x2>=x1&&r[i].x2<=x2) { calc(i+1,r[i].x2+1,y1,x2,y2,color); x2=r[i].x2; } if(r[i].y1>=y1&&r[i].y1<=y2) { calc(i+1,x1,y1,x2,r[i].y1-1,color); y1=r[i].y1; } if(r[i].y2>=y1&&r[i].y1<=y2) { calc(i+1,x1,r[i].y2+1,x2,y2,color); y2=r[i].y2; } } int main() { #ifndef ONLINE_JUDGE freopen("177.in","r",stdin);freopen("177.out","w",stdout); #endif int i,x1,y1,x2,y2; scanf("%d %d",&n,&m); for(i=1;i<=m;++i) { scanf("%d %d %d %d %c",&x1,&y1,&x2,&y2,&r[i].color); if(x1<x2)r[i].x1=x1,r[i].x2=x2; else r[i].x2=x1,r[i].x1=x2; if(y1<y2)r[i].y1=y1,r[i].y2=y2; else r[i].y2=y1,r[i].y1=y2; } for(i=1;i<=m;++i) if(r[i].color=='b') calc(i+1,r[i].x1,r[i].y1,r[i].x2,r[i].y2,r[i].color); printf("%d\n",n*n-ans_black); }