yukicoder - No.11 カードマッチ

No.11 カードマッチ - yukicoder

この手のものは、一旦何も考えず全部足していって、最後に余計なものをひいていくのがうまくいくかな?

set <ll> sets, setk;

signed main() {
    ll W,H,N;
    cin>>W>>H>>N;

    for(int i=0;i<N;i++){
        ll S,K;
        cin>>S>>K;
        sets.insert(S);
        setk.insert(K);
    }

    ll res = 0;
    // 1. 同じマークのもの
    res += H * sets.size();
    // 2. 同じ数字のもの
    res += W * setk.size();
    // 1と2で重複して数えたものをひく
    res -= setk.size() * sets.size();
    // 手札はカウントしないのでひく
    res -= N;

    cout<<res<<endl;

    return 0;
}