Submission #957364

# Submission time Handle Problem Language Result Execution time Memory
957364 2024-04-03T14:38:02 Z vjudge1 Beads and wires (APIO14_beads) C++17
0 / 100
2 ms 4956 KB
#include<bits/stdc++.h>

using namespace std;

const int N=2e5+10;
int f[N][2];
vector<pair<int, int>> g[N];

void dfs(int u, int p){
   for (auto &e:g[u]) if (e.first!=p) dfs(e.first, u);
   vector<int> vv;
   for (auto &e:g[u]){
      int v=e.first, w=e.second;
      if (v==p) continue;
      f[u][0]+=max(f[v][0], f[v][1]), vv.push_back(f[v][0]+w-max(f[v][0], f[v][1]));
   }
   if ((int)vv.size()>=2){
      int m1=vv[0], m2=vv[1];
      if (m1<m2) swap(m1, m2);
      for (int i=2; i<(int)vv.size(); ++i){
         if (m1<vv[i]) m2=m1, m1=vv[i];
         else m2=max(m2, vv[i]);
      }
      f[u][0]=max(f[u][0], f[u][0]+m1+m2);
   }
   if (p && (int)g[u].size()>1){
      int wpar=0;
      for (auto &e:g[p]) if (e.first==u) wpar=e.second;
      int m=INT_MIN;
      for (auto &e:g[u]){
         int v=e.first, w=e.second;
         if (v==p) continue;
         f[u][1]+=max(f[v][0], f[v][1]);
         m=max(m, f[v][0]+w-max(f[v][0], f[v][1])+wpar);
      }
      f[u][1]+=m;
   }
}

int32_t main(){
   ios_base::sync_with_stdio(false);
   cin.tie(nullptr);
   int n;
   cin >> n;
   for (int i=1; i<n; ++i){
      int u, v, w; cin >> u >> v >> w;
      g[u].emplace_back(v, w);
      g[v].emplace_back(u, w);
   }
   dfs(1, 0);
   cout << f[1][0];
   return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4952 KB Output is correct
2 Correct 2 ms 4956 KB Output is correct
3 Correct 1 ms 4956 KB Output is correct
4 Correct 1 ms 4956 KB Output is correct
5 Correct 1 ms 4956 KB Output is correct
6 Incorrect 1 ms 4956 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4952 KB Output is correct
2 Correct 2 ms 4956 KB Output is correct
3 Correct 1 ms 4956 KB Output is correct
4 Correct 1 ms 4956 KB Output is correct
5 Correct 1 ms 4956 KB Output is correct
6 Incorrect 1 ms 4956 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4952 KB Output is correct
2 Correct 2 ms 4956 KB Output is correct
3 Correct 1 ms 4956 KB Output is correct
4 Correct 1 ms 4956 KB Output is correct
5 Correct 1 ms 4956 KB Output is correct
6 Incorrect 1 ms 4956 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 4952 KB Output is correct
2 Correct 2 ms 4956 KB Output is correct
3 Correct 1 ms 4956 KB Output is correct
4 Correct 1 ms 4956 KB Output is correct
5 Correct 1 ms 4956 KB Output is correct
6 Incorrect 1 ms 4956 KB Output isn't correct
7 Halted 0 ms 0 KB -