AT2145 [ABC047B] すぬけ君の塗り絵 2 イージー / Snuke's Coloring 2 (ABC Edit)

· · 题解

AT2145

分析

这道题我们可以直接暴力再优化,因为数据范围是完全小于等于 100 的,所以暴力是完全可以过的,那么我们考虑以下几种情况:

这里还有第三,第四种情况,都与一、二种情况一一对应。

最后特判一下,如果 b \ge ad \ge c 则没有白色区域,输出 0

AC code

#include <bits/stdc++.h>
#define int long long
#define AC return 0
#define il inline
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
using namespace std;

const int N=100010;

int a=0,b=0,c,d;

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n,l,r;
    cin>>l>>r>>n;
    b=l,d=r;
    rep(i,1,n) {
        int x,y,op;
        cin>>x>>y>>op;
        if(op==1) a=max(a,x);
        else if(op==2) b=min(b,x);
        else if(op==3) c=max(c,y);
        else if(op==4) d=min(d,y);
    }
    if(a>=b || c>=d) puts("0");
    else cout<<(b-a)*(d-c)<<endl;
    AC;
}