Submission #1138131

#TimeUsernameProblemLanguageResultExecution timeMemory
1138131PekibanBeads and wires (APIO14_beads)C++20
0 / 100
2 ms4932 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define pb push_back const int N = 2e5 + 5; ll dp[N][2][2]; vector<array<int, 2>> g[N]; void dfs(int s, int e = -1) { dp[s][0][0] = 0, dp[s][1][0] = dp[s][1][1] = dp[s][0][1] = -1e12; for (auto [u, w] : g[s]) { if (u == e) continue; dfs(u, s); dp[s][0][0] += max({dp[u][0][0], dp[u][0][1], dp[u][1][0] + w}); } for (auto [u, w1] : g[s]) { if (u == e) continue; ll bs = dp[u][0][0] + w1; for (auto [v, w2] : g[s]) { if (v == e || v == u) continue; bs += max({dp[v][0][0], dp[v][0][1], dp[v][1][0] + w2}); } dp[s][1][0] = max(dp[s][1][0], bs); } // cout << s << ' ' << dp[s][1][0] << '\n'; for (auto [u, w1] : g[s]) { if (u == e) continue; for (auto [v, w2] : g[s]) { if (v == e || v == u) continue; ll bs = max(dp[u][0][0], dp[u][0][1]) + max(dp[v][0][0], dp[v][0][1]) + w1 + w2; for (auto [t, w3] : g[s]) { if (t == v || t == u || t == e) continue; bs += max({dp[t][0][0], dp[t][0][1], dp[t][1][0] + w3}); } dp[s][0][1] = max(dp[s][0][1], bs); } ll bs = dp[u][1][1] + w1; for (auto [v, w2] : g[s]) { if (v == e || v == u) continue; bs += max({dp[v][0][0], dp[v][0][1], dp[v][1][0] + w2}); } dp[s][0][1] = max(dp[s][0][1], bs); } for (auto [u, w1] : g[s]) { if (u == e) continue; ll bs = dp[u][0][1] + w1; for (auto [v, w2] : g[s]) { if (v == e || u == v) continue; bs += max({dp[v][0][0], dp[v][0][1], dp[v][1][0] + w2}); } dp[u][1][1] = max(dp[u][1][1], bs); } } int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for (int i = 1; i < n; ++i) { int u, v, w; cin >> u >> v >> w; g[u].pb({v, w}); g[v].pb({u, w}); } dfs(1); cout << max(dp[1][0][0], dp[1][0][1]) << '\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...