top1编程
← 返回题目
题解

【基础】集合运算

1 条题解

  • 0
    @ 2026-7-29 0:17:47
    #include <iostream>
    #include <set>
    #include <vector>
    using namespace std;
    void printSet(const set<int>& s) {
        bool first = true;
        for (int num : s) {
            if (!first) {
                cout << " ";
            }
            cout << num;
            first = false;
        }
        cout << endl;
    }
    
    int main() {
        int n, m;
        set<int> A, B;
        cin >> n;
        for (int i = 0; i < n; ++i) {
            int num;
            cin >> num;
            A.insert(num);
        }
        cin >> m;
        for (int i = 0; i < m; ++i) {
            int num;
            cin >> num;
            B.insert(num);
        }
        set<int> intersection;
        for (int num : A) {
            if (B.find(num) != B.end()) {
                intersection.insert(num);
            }
        }
        set<int> union_set(A); 
        for (int num : B) {
            union_set.insert(num);
        }
        set<int> complement;
        for (int num : A) {
            if (B.find(num) == B.end()) {
                complement.insert(num);
            }
        }
        printSet(intersection);
        printSet(union_set);
        printSet(complement); 
        return 0;
    }
    
    • 1