Submission #1292450

#TimeUsernameProblemLanguageResultExecution timeMemory
1292450chaitanyamehtaLost Array (NOI19_lostarray)C++20
0 / 100
6 ms336 KiB
// https://oj.uz/problem/view/NOI19_charges
#include<bits/stdc++.h>
using namespace std;

#define int long long
#define pii pair<int ,int>

struct DSU{
    vector<int> par;
    void init(int n){
        par.resize(n + 1);
        for(int i = 0;i<=n;i++)par[i] =i;
    }
    int find(int u){
        if(par[u] == u) return u;
        return par[u] = find(par[u]);
    }
    void Union(int u , int v){
        int paru = find(u); int parv = find(v);

        if(paru == parv){
            return;
        }

        par[paru] = parv;
    }

};

signed main(){
    int n , q;
    cin >> n >> q;
    vector<int> ans(n + 1, 0);
    DSU dsu;
    dsu.init(n);
    while(q--){
        char t;
        cin>>t;
        int u , v;cin>>u>>v;
        
        if(t == 'R'){
            dsu.Union(u , v);
        }
        else if(t == 'Q'){
            int paru = dsu.find(u);
            int parv = dsu.find(v);
            if(paru == parv){
                cout << "R\n";
            }
            else{
                cout << "?\n";
            }
        }
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...