ABC 329

https://atcoder.jp/contests/abc329

A. Spread

https://atcoder.jp/contests/abc329/tasks/abc329_a

B. Next

https://atcoder.jp/contests/abc329/tasks/abc329_b

C. Count xxx

https://atcoder.jp/contests/abc329/tasks/abc329_c

D. Election Quick Report

https://atcoder.jp/contests/abc329/tasks/abc329_d

E. Stamp

https://atcoder.jp/contests/abc329/tasks/abc329_e

F. Colored Ball

https://atcoder.jp/contests/abc329/tasks/abc329_f

サイズが小さい方の箱の中身を移すという比較的自然な考え方で解けた。なぜ水色 diff なのか疑問。

void solve() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    ll N, Q;
    cin >> N >> Q;
    vint col(N);
    rep(i, N) cin >> col[i];
    vector<set<int>> balls(N);
    rep(i, N) balls[i].insert(col[i]);

    rep(i, Q) {
        int a, b;
        cin >> a >> b;
        a--, b--;
        if (balls[a].size() < balls[b].size()) {
            for (ll x : balls[a]) balls[b].insert(x);
            balls[a].clear();
        } else {
            for (ll x : balls[b]) balls[a].insert(x);
            balls[b].clear();
            swap(balls[a], balls[b]);
        }
        cout << balls[b].size() << endl;
    }
}

G. Delivery on Tree

https://atcoder.jp/contests/abc329/tasks/abc329_g