/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 5ms 5.062 MiB
#2 Wrong Answer 20ms 5.02 MiB
#3 Wrong Answer 21ms 5.066 MiB

Code

/*If we keep holding onto yesterday, what are we going to be tomorrow?*/

#include<bits/stdc++.h>
using namespace std;
using ll = long long;

const int N = 200005;
vector<array<int, 2>>g[N];
long long d[N], w[N];
long long ans = LLONG_MIN;

long long dfs(int u, int p) {
    
    long long mx = d[u];
    for(auto [v, wt] : g[u]) {
        if(v == p) continue;
        d[v] = d[u] - 2ll * wt + w[v];
        long long yo = dfs(v, u);
        long long ret = yo + mx - 2ll * d[u] + w[u];
        ans = max(ans, ret);
        mx = max(mx, yo);
    }

    return mx;
}
void solve() {
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++) g[i].clear();
    for(int i = 1; i <= n; i++) {
        cin >> w[i];
    }
    d[1] = w[1];
    for(int i = 0; i < n - 1; i++) {
        int u, v, wt;
        cin >> u >> v >> wt;
        g[u].push_back({v, wt});
        g[v].push_back({u, wt});
    }

    ans = LLONG_MIN;
    dfs(1, 0);
    cout << ans << '\n';

}

int32_t main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
        
    int t = 1;
    cin >> t;
    
    while(t--){
        solve();
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1205 E. Make Cycle in Tree
Contest
Educational Round 1
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-14 15:41:08
Judged At
2025-07-14 15:41:08
Judged By
Score
0
Total Time
21ms
Peak Memory
5.066 MiB