为什么全是RE
查看原帖
为什么全是RE
1112952
Au_Gold楼主2024/7/23 16:38
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
const int N = 16000+5,M =1e4+5,mod = 7;
ll n, sum[N], a[N];
vector<ll> E[N];

ll dfs(ll zi,ll fa) {

    for (ll to:E[zi]) {
        if(to == fa)
            continue;
        dfs(to, zi);
        sum[zi] += (sum[to]>0?sum[to]:0);
    }
    sum[zi] += a[zi];
}

int main()
{
    cin >> n;
    for (ll i = 1; i <= n;i++) {
        cin >> a[i];
    }
    for (ll i = 1; i <= n - 1;i++) {
        ll fr, to;
        cin >> fr >> to;
        E[fr].push_back(to);
        E[to].push_back(fr);
    }

    dfs(1, 0);

    ll ans = LONG_LONG_MIN;
    for (ll i = 1; i <= n;i++) {
        ans = max(ans, sum[i]);
    }
    cout << ans << endl;

    return 0;
}
/*
7
-1 -1 -1 1 1 1 0
1 4
2 5
3 6
4 7
5 7
6 7
*/

2024/7/23 16:38
加载中...