Submission #670138

#TimeUsernameProblemLanguageResultExecution timeMemory
670138MahdiBeads and wires (APIO14_beads)C++17
0 / 100
3 ms4948 KiB
#include<bits/stdc++.h> #pragma GCC optimize("Ofast") using namespace std; #define all(v) v.begin(), v.end() #define F first #define S second typedef long long ll; typedef pair<int, int> pii; const int N=2e5+5; int n, dp[N], pd[N], py[N]; vector<pii>g[N]; void dfs(const int &v, const int &p=-1){ for(pii u: g[v]){ if(u.F!=p){ py[u.F]=u.S; dfs(u.F, v); pd[v]+=dp[u.F]; } } int x=0, y=-2e9, z=0; for(pii u: g[v]){ if(u.F!=p){ z=max(z+dp[u.F], y+pd[u.F]+u.S); y=max(y+dp[u.F], x+pd[u.F]+u.S); x+=dp[u.F]; } } pd[v]=max(pd[v], z); dp[v]=max(pd[v], y+py[v]); } int main(){ cin>>n; for(int i=1;i<n;++i){ int u, v, w; cin>>u>>v>>w; g[--u].push_back({--v, w}); g[v].push_back({u, w}); } py[0]=-2e9; dfs(0); cout<<dp[0]<<'\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...