Submission #910110

#TimeUsernameProblemLanguageResultExecution timeMemory
910110MinaRagy06Inside information (BOI21_servers)C++17
5 / 100
1010 ms2644 KiB
#include <bits/stdc++.h> using namespace std; typedef int64_t ll; const int N = 4005; vector<array<int, 2>> adj[N]; bool dfs(int i, int prvt, int par, int tar) { if (i == tar) return 1; bool ok = 0; for (auto [nxt, t] : adj[i]) { if (nxt == par) continue; if (prvt > t) { ok |= dfs(nxt, t, i, tar); } } return ok; } int dfs2(int i, int prvt, int par) { int ans = 1; for (auto [nxt, t] : adj[i]) { if (nxt == par) continue; if (prvt < t) { ans += dfs2(nxt, t, i); } } return ans; } int main() { ios_base::sync_with_stdio(0), cin.tie(0); int n, q; cin >> n >> q; q += n - 1; for (int cur = 0; cur < q; cur++) { char t; int a, b; cin >> t >> a; if (t == 'S') { cin >> b; adj[a].push_back({b, cur}); adj[b].push_back({a, cur}); } else if (t == 'Q') { cin >> b; cout << (dfs(a, 1e9, -1, b)? "yes\n" : "no\n"); } else { cout << dfs2(a, -1e9, -1) << '\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...