#55260: cpp_answer


yp11451202@yphs.tp.edu.tw (705-38黃鈺潤)


#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <set>
#include <algorithm>

using namespace std;

// 輔助函式:將字串轉換為整數集合
set<int> stringToSet(string s) {
    stringstream ss(s);
    int num;
    set<int> res;
    while (ss >> num) {
        res.insert(num);
    }
    return res;
}

int main() {
    string line1, line2;
    // 每次讀取兩行,分別代表集合 A 與 B
    while (getline(cin, line1) && getline(cin, line2)) {
        set<int> A = stringToSet(line1);
        set<int> B = stringToSet(line2);

        // 計算交集數量
        int intersectCount = 0;
        for (int x : A) {
            if (B.count(x)) {
                intersectCount++;
            }
        }

        int sizeA = A.size();
        int sizeB = B.size();

        // 判斷邏輯
        if (sizeA == sizeB && intersectCount == sizeA) {
            cout << "A equals B" << endl;
        } else if (intersectCount == sizeA && sizeA < sizeB) {
            cout << "A is a proper subset of B" << endl;
        } else if (intersectCount == sizeB && sizeB < sizeA) {
            cout << "B is a proper subset of A" << endl;
        } else if (intersectCount == 0) {
            cout << "A and B are disjoint" << endl;
        } else {
            cout << "I'm confused!" << endl;
        }
    }
    return 0;
}