Advertisement
mickypinata

PROG-T1111: Capital

Dec 6th, 2020
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long lli;
  5. typedef pair<int, int> pii;
  6.  
  7. const int N = 1e5 + 1;
  8.  
  9. vector<pii> adj[N + 1];
  10. vector<lli> dp(N + 1, -1);
  11. int nVertex;
  12.  
  13. lli DFS(int u, int p){
  14.     if(dp[u] != -1){
  15.         return dp[u];
  16.     }
  17.     lli mx = 0;
  18.     for(pii nxt : adj[u]){
  19.         int v = nxt.first;
  20.         int w = nxt.second;
  21.         if(v != p){
  22.             mx = max(mx, w + DFS(v, u));
  23.         }
  24.     }
  25.     return dp[u] = mx;
  26. }
  27.  
  28. int main(){
  29.  
  30.     scanf("%d", &nVertex);
  31.  
  32.     for(int i = 1; i < nVertex; ++i){
  33.         int u, v, w;
  34.         scanf("%d %d %d", &u, &v, &w);
  35.         adj[u].emplace_back(v, w);
  36.         adj[v].emplace_back(u, w);
  37.     }
  38.     cout << DFS(1, 0);
  39.  
  40.     return 0;
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement