Submission #1292464

#TimeUsernameProblemLanguageResultExecution timeMemory
1292464chaitanyamehtaLost Array (NOI19_lostarray)C++20
0 / 100
6 ms332 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; int a[n + 1][n + 1]; DSU dsu; dsu.init(n); while(q--){ char t; cin>>t; int u , v;cin>>u>>v; if(t == 'Q'){ int paru = dsu.find(u); int parv = dsu.find(v); if(paru == parv){ cout << "R\n"; } else{ if(a[paru][parv] == 1){ cout << "A\n"; } else{ cout << "?\n"; } } } else if(t == 'A'){ int paru = dsu.find(u) , parv = dsu.find(v); a[paru][parv] = 1 , a[parv][paru] = 1; } else{ dsu.Union(u , v); } } }
#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...