Submission #720303

#TimeUsernameProblemLanguageResultExecution timeMemory
720303JohannInside information (BOI21_servers)C++14
5 / 100
86 ms4044 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 main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int N, K; cin >> N >> K; int last = 0; vi added(N, INT_MAX); added[0] = 0; for (int t = 1; t < N + K; ++t) { string command; cin >> command; if (command == "S") { int a, b; cin >> a >> b; --a; --b; if (a > b) swap(a, b); added[b] = ++last; } else if (command == "Q") { int a,d; cin >> a >> d; --a; --d; if (a == d) cout << "yes\n"; else if (added[a] != INT_MAX && added[d] != INT_MAX && (a == 0 || added[d] <= added[a])) cout << "yes\n"; else cout << "no\n"; } else { int d; cin >> d; --d; int cnt = 1; if (d == 0) { cnt += last; } else { if (added[d] != INT_MAX) { cnt += last - added[d] + 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...