Submission #1224545

#TimeUsernameProblemLanguageResultExecution timeMemory
1224545SpyrosAlivInside information (BOI21_servers)C++20
2 / 100
28 ms1124 KiB
#include <bits/stdc++.h> using namespace std; const int MN = 120005; const int MQ = 120005; vector<int> mergeIdx(MN); int n, q; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> q; for (int i = 1; i <= n; i++) mergeIdx[i] = -1; int merges = 0; for (int qq = 1; qq <= n + q - 1; qq++) { char s; cin >> s; if (s == 'S') { int a, b; cin >> a >> b; if (a == 1) swap(a, b); merges++; mergeIdx[a] = merges; } else if (s == 'Q') { int a, b; cin >> a >> b; if (a == b) { cout << "yes\n"; continue; } if (a == 1 || b == 1) { if ((a == 1 && mergeIdx[b] != -1) || (b == 1 && mergeIdx[a] != -1)) cout << "yes\n"; else cout << "no\n"; continue; } if (mergeIdx[b] < mergeIdx[a] && mergeIdx[a] != -1 && mergeIdx[b] != -1) { cout << "yes\n"; } else cout << "no\n"; } else if (s == 'C') { int u; cin >> u; if (u == 1) { cout << merges + 1 << "\n"; continue; } if (mergeIdx[u] == -1) cout << 0 << "\n"; else { cout << merges - mergeIdx[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...