Submission #657580

#TimeUsernameProblemLanguageResultExecution timeMemory
657580TimDeeInside information (BOI21_servers)C++17
0 / 100
225 ms524288 KiB
#include <bits/stdc++.h> using namespace std; #define forn(i,n) for (int i=0; i<n; ++i) bitset<120000> a[120002]; void solve() { int n,q; cin>>n>>q; forn(i,n) a[i].set(i); vector<string> a(n); vector<int> last(n); forn(i,n) last[i]=i; forn(i,n) a[i]+=i; forn(Q,n-1+q) { char c; cin>>c; if (c=='S') { int u,v; cin>>u>>v; --u,--v; if (u!=last[u]) a[u]=a[last[u]]; if (v!=last[v]) a[v]=a[last[v]]; if (a[u].size()<a[v].size()) swap(u,v); for (auto x:a[v]) a[u]+=x; a[v]=a[u]; //last[u]=last[v]=u; //for (auto x:a[u]) cout<<x<<' '; cout<<" "; //for (auto x:a[v]) cout<<x<<' '; cout<<'\n'; } else if (c=='Q') { int u,x; cin>>u>>x; --u, --x; u=last[u]; cout << ((a[u].find(x)!=a[u].find(n))?"yes\n":"no\n"); } else { int x; cin>>x; --x; cout<<0<<'\n'; } } } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); return 0; }
#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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...