DMOJ · dmpg17s2

Anime Conventions

This C++ solution uses disjoint set union for DMOJ dmpg17s2 Anime Conventions. Read the reasoning, inspect the code, or try your own test case below.

dmpg17s2Graphs & treesDisjoint set unionC++30 lines
Solution015of 248
Open official problem ↗ Download C++ file ↓ Search the library → Open full Code Lab ↗ Report an issue ↗

Approach

Disjoint set union

Anime Conventions operations are road additions and connectivity questions with Y/N answers; the code is the corresponding DSU implementation.

Graphs & trees

Problem and code

Useful links.

Written by benbenyaojifen. Try the problem first, then compare your approach with the code.

Open official problem ↗View exact source file ↗
Implementation

S_2_Anime_Conventions.cpp

C++

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int INF = 0x3f3f3f3f; //❄️
    int find (int x, vector<int>& parent) {
        if(parent[x] == x) return x;
        return parent[x] = find(parent[x], parent);
    }
    void unite (int x, int y, vector<int>& parent) {
        int px = find(x, parent), py = find(y, parent);
        parent[px] = py;
    }
    int main() {
        ios::sync_with_stdio(0); cin.tie(0); 
        int n, q; cin >> n >> q;
        vector<int> parent(n + 1);
        for (int i = 0; i <= n; i++) parent[i] = i; 
        for (int i = 0; i < q; i++) {
            char c; int a, b; cin >> c >> a >> b;
            if(c == 'A'){
                unite(a, b, parent);
                
            } else {
                int pa = find(a, parent), pb = find(b, parent);
                if (pa == pb) cout << 'Y' << '\n';
                else cout << "N" << '\n';
            }
        }
        return 0;
    }
        

Did this explanation save you time? I'm a Grade 11 student building this free library to make difficult algorithms easier to understand.

Buy me a coffee ↗Keep studying →

Test this problem

Run your code here.

Paste your code, run a test case, compare the output, or trace selected values.

Full trace, comparison & stress testing ↗
StatusReady
Output
No run yet.
Diagnostics
No diagnostics yet.

Each run is isolated and has strict limits. Passing one test does not guarantee the judge will accept the solution.