yukicoder - No.11 カードマッチ
この手のものは、一旦何も考えず全部足していって、最後に余計なものをひいていくのがうまくいくかな?
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; }