Submission #489318

# Submission time Handle Problem Language Result Execution time Memory
489318 2021-11-22T10:11:11 Z bigDuck Beads and wires (APIO14_beads) C++14
0 / 100
3 ms 5032 KB
#include<bits/stdc++.h>
using namespace std;
#define INIT  ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define mp make_pair
#define pb push_back
#define ft first
#define sc second
#define ll long long
#define pii pair<int, int>
#define count_bits __builtin_popcount
#define int ll


int n;
int c[200010];
vector<pii> g[200010];


int dp[200010][2];
int par[200010];
bool v[200010];

void dfs(int s){
v[s]=true;
int tot=0;
for(auto pr:g[s]){
    int u=pr.ft, c=pr.sc;
    if(!v[u]){
        par[u]=c;
        dfs(u);
        tot+=max(dp[u][0], dp[u][1]);
    }
}

vector<int> vec;

for(auto pr:g[s]){
    int u=pr.ft, c=pr.sc;
    if(!v[u]){
        vec.pb(dp[u][0]+c-max(dp[u][0], dp[u][1]) );
    }
}
sort(vec.begin(), vec.end());

if(vec.size()>=1){
    dp[s][1]=tot+vec.back()+par[s];
}
if(vec.size()>=2){
    dp[s][0]=tot+vec[vec.size()-1]+vec[vec.size()-2];
}
dp[s][0]=max(dp[s][0], tot);
v[s]=false;
}


int32_t main(){
INIT
cin>>n;
for(int i=1; i<n; i++){
    int a, b;
    cin>>a>>b>>c[i];
    g[a].pb({b, c[i]});
    g[b].pb({a, c[i]});
}

dfs(1);
cout<<dp[1][0];


return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4940 KB Output is correct
2 Correct 3 ms 4940 KB Output is correct
3 Correct 2 ms 4940 KB Output is correct
4 Correct 2 ms 4944 KB Output is correct
5 Correct 3 ms 5032 KB Output is correct
6 Incorrect 3 ms 4944 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4940 KB Output is correct
2 Correct 3 ms 4940 KB Output is correct
3 Correct 2 ms 4940 KB Output is correct
4 Correct 2 ms 4944 KB Output is correct
5 Correct 3 ms 5032 KB Output is correct
6 Incorrect 3 ms 4944 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4940 KB Output is correct
2 Correct 3 ms 4940 KB Output is correct
3 Correct 2 ms 4940 KB Output is correct
4 Correct 2 ms 4944 KB Output is correct
5 Correct 3 ms 5032 KB Output is correct
6 Incorrect 3 ms 4944 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 4940 KB Output is correct
2 Correct 3 ms 4940 KB Output is correct
3 Correct 2 ms 4940 KB Output is correct
4 Correct 2 ms 4944 KB Output is correct
5 Correct 3 ms 5032 KB Output is correct
6 Incorrect 3 ms 4944 KB Output isn't correct
7 Halted 0 ms 0 KB -