Submission #812322

#TimeUsernameProblemLanguageResultExecution timeMemory
812322MyCodeInside information (BOI21_servers)C++17
10 / 100
1179 ms377108 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr); int n, k; cin >> n >> k; if(n <= 4000){ set<int> st[n + 1]; for (int i = 1; i <= n; i++) st[i].insert(i); int cnt[n + 1]; for (int i = 1; i <= n; i++) cnt[i] = 1; for (int q = 0; q < n + k - 1; q++) { char t; cin >> t; if (t == 'S') { int a, b; cin >> a >> b; for (auto x: st[b]) if (st[a].find(x) == st[a].end())cnt[x]++; for (auto x: st[a]) if (st[b].find(x) == st[b].end())cnt[x]++; for (auto x: st[b]) st[a].insert(x); st[b] = st[a]; } else if (t == 'Q') { int a, d; cin >> a >> d; if (st[a].find(d) == st[a].end()) cout << "no\n"; else cout << "yes\n"; } else { int a; cin >> a; cout << cnt[a] << "\n"; } } return 0; } int pos[n + 1], cur = 0; for (int i = 1; i <= n; i++) pos[i] = (int) 1e9; pos[1] = 0; for (int q = 0; q < n + k - 1; q++) { char t; cin >> t; if (t == 'S') { int a, b; cin >> a >> b; if (a != 1)swap(a, b); pos[b] = cur; cur++; } else if (t == 'Q') { int a, b; cin >> a >> b; if (a == 1) { if (pos[b] != (int) 1e9) cout << "yes\n"; else cout << "no\n"; continue; } if (b == 1) { if (pos[a] != (int) 1e9) cout << "yes\n"; else cout << "no\n"; continue; } if (pos[a] != (int)1e9 && pos[a] >= pos[b]) cout << "yes\n"; else cout << "no\n"; } else { int d; cin >> d; if (d == 1) { cout << cur + 1 << "\n"; continue; } if (pos[d] == (int) 1e9)cout << "1\n"; else cout << 1 + cur - pos[d] << "\n"; } } 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...