Submission #1228228

#TimeUsernameProblemLanguageResultExecution timeMemory
1228228rhm_ganSynchronization (JOI13_synchronization)C++20
0 / 100
8090 ms28824 KiB
#include <bits/stdc++.h> using namespace std; #ifdef LOCAL #include "debug.h" #else #define dbg(...) 42 #endif vector<set<int>> adj; vector<set<int>> s; void dfs(int u, int p, int r) { s[r].insert(u); for (auto v : adj[u]) { s[u].insert(v); if (v != p) { dfs(v, u, r); } } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m, q; cin >> n >> m >> q; vector<pair<int, int>> e(n); for (int i = 1; i < n; i++) { cin >> e[i].first >> e[i].second; } vector<int> D(m), C(q); for (int i = 0; i < m; i++) { cin >> D[i]; } for (int i = 0; i < q; i++) { cin >> C[i]; } s.resize(n + 1); adj.resize(n + 1); vector<bool> is(n); int sum = 0; for (int i = 0; i < m; i++) { is[D[i]] = !is[D[i]]; auto [u, v] = e[D[i]]; if (is[D[i]]) { sum++; adj[u].insert(v); adj[v].insert(u); for (auto u : C) { dfs(u, -1, u); } } else { sum--; adj[u].erase(v); adj[v].erase(u); } } for (auto u : C) { cout << s[u].size() << '\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...