Submission #389156

#TimeUsernameProblemLanguageResultExecution timeMemory
389156phathnvBeads and wires (APIO14_beads)C++11
28 / 100
1069 ms5580 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 2e5 + 7; const int INF = 1e9 + 7; struct Edge{ int v, c; Edge(int _v, int _c){ v = _v; c = _c; } }; int n, dp[N][2]; vector<Edge> adj[N]; void Dfs(int u, int p){ dp[u][0] = 0; dp[u][1] = -INF; for(Edge e : adj[u]){ int v = e.v; int c = e.c; if (v == p) continue; Dfs(v, u); dp[u][1] = max(dp[u][1] + max(dp[v][0], dp[v][1] + c), dp[u][0] + dp[v][0] + c); dp[u][0] += max(dp[v][0], dp[v][1] + c); } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i = 1; i < n; i++){ int u, v, c; cin >> u >> v >> c; adj[u].push_back(Edge(v, c)); adj[v].push_back(Edge(u, c)); } int res = 0; for(int i = 1; i <= n; i++){ Dfs(i, -1); res = max(res, dp[i][0]); } cout << res; 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...