Submission #863500

#TimeUsernameProblemLanguageResultExecution timeMemory
863500Cyber_WolfInside information (BOI21_servers)C++17
2.50 / 100
232 ms2712 KiB
#include <bits/stdc++.h> using namespace std; #define lg long long const lg N = 2e5+5; lg par[N], compSize[N]; lg get(lg src) { if(src == par[src]) return src; return par[src] = get(par[src]); } void join(lg u, lg v) { u = get(u), v = get(v); if(u == v) return; if(compSize[u] > compSize[v]) swap(u, v); par[u] = v; compSize[v] += compSize[u]; return; } int main() { #ifdef CYBER freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); #endif lg n, k; cin >> n >> k; vector<lg> dat(n), tim(n); for(int i = 1; i < n; i++) tim[i] = -1; lg op = 0; k += n-1; while(k--) { char c; cin >> c; if(c == 'S') { lg u, v; cin >> u >> v; u--, v--; if(!v) swap(u, v); tim[v] = op++; } else if(c == 'Q') { lg u, v; cin >> u >> v; u--, v--; if(!u) { cout << (tim[v] == -1 ? "no\n" : "yes\n"); continue; } cout << ((tim[v] != -1 && tim[v] <= tim[u]) ? "yes\n" : "no\n"); } else{ lg u; cin >> u; u--; if(tim[u] == -1) { cout << "0\n"; continue; } if(!u) { cout << n << '\n'; continue; } cout << tim[u]+2 << '\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...
#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...