Submission #825250

#TimeUsernameProblemLanguageResultExecution timeMemory
825250vjudge1Designated Cities (JOI19_designated_cities)C++17
7 / 100
194 ms36764 KiB
#include <bits/stdc++.h> using namespace std; // 123 int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector<vector<tuple<int, int, int>>> adj(n); for (int i = 0; i < n - 1; i++) { int u, v, a, b; cin >> u >> v >> a >> b; u--, v--; adj[u].emplace_back(v, a, b); adj[v].emplace_back(u, b, a); } vector<int64_t> f(n, 0); function<void(int, int)> dfs1 = [&](int u, int p) { for (auto [v, a, b] : adj[u]) { // a(u->v), b(v->u) if (v == p) continue; dfs1(v, u); f[u] += a + f[v]; } }; vector<int64_t> g(n, 0); function<void(int, int)> dfs2 = [&](int u, int p) { for (auto [v, a, b] : adj[u]) { // a(u->v), b(v->u) if (v == p) continue; g[v] = g[u] - a + b; dfs2(v, u); } }; dfs1(0, -1); g[0] = f[0]; dfs2(0, -1); int q; cin >> q; while (q--) { int e; cin >> e; assert(e == 1); cout << *min_element(g.begin(), g.end()) << '\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...