Submission #720580

#TimeUsernameProblemLanguageResultExecution timeMemory
720580JohannInside information (BOI21_servers)C++14
10 / 100
84 ms5028 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define vb vector<bool> #define vi vector<int> #define vpii vector<pii> #define vvb vector<vb> #define vvi vector<vi> #define vvpii vector<vpii> void dfs(vvpii & adj, int v, int t, int source, vvb & reachable) { reachable[source][v] = true; for (pii e : adj[v]) { if (e.second < t) dfs(adj, e.first, e.second, source, reachable); } } int lowerbound(vpii & borders, int l, int r, int d) { while (l < r) { int m = (l + r) / 2; if (borders[m].second >= d) r = m; else l = m+1; } return l; } int otherbound(vpii & borders, int l, int r, int d) { while (l < r) { int m = (l + r + 1) / 2; if (borders[m].first <= d) l = m; else r = m-1; } return l; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int N, K; cin >> N >> K; vpii borders(N); for (int i = 0; i < N; ++i) borders[i] = { i , i }; for (int t = 1; t < N + K; ++t) { string command; cin >> command; if (command == "S") { int a, b; cin >> a >> b; --a; --b; if ( b < a ) swap(a, b); borders[a].second = borders[b].second; borders[b].first = borders[a].first; } else if (command == "Q") { int a,d; cin >> a >> d; --a; --d; if (borders[a].first <= d && d <= borders[a].second) cout << "yes\n"; else cout << "no\n"; } else { int d; cin >> d; --d; int l = lowerbound(borders, 0, d, d); int r = otherbound(borders, d, N-1, d); int cnt = r - l + 1; cout << cnt << "\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...