【題解】ZeroJudge e557: 11678 – Cards’ Exchange

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=e557
【解題想法】

  • set stA:Alice拿到的卡牌種類
  • set stB:Betty拿到的卡牌種類
  • set st:stA 與 stB 的聯集
  • st.size() – stA.size():Alice 獨有的卡牌種類
  • st.size() – stB.size():Betty 獨有的卡牌種類
#include <iostream>
#include <set>
using namespace std;

int main() {
    int A, B, n;
    while (cin >> A >> B){
        if (A == 0 && B == 0) break;
        set <int> stA, stB, st;
        for (int i = 0; i < A; i++){
            cin >> n;
            stA.insert(n);
            st.insert(n);
        }
        for (int i = 0; i < B; i++){
            cin >> n;
            stB.insert(n);
            st.insert(n);
        }
        cout << min(st.size() - stA.size(), st.size() - stB.size()) << "\n";        
    }
    return 0;
}
分享本文 Share with friends