Cod sursa(job #2461785)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 26 septembrie 2019 09:54:58
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

vector <int> v[16001];
int dp[16001],mx=-1073741824;

void dfs(int nod, int tata) {
    for(int i=0;i<v[nod].size();i++) {
        int nnod=v[nod][i];
        if (nnod!=tata) {
            dfs(nnod,nod);
            if(dp[nnod]>0)
                dp[nod]+=dp[nnod];
        }
    }
    mx=max(mx,dp[nod]);
}

int main()
{
    int n,i,a,b;
    freopen("asmax.in","r",stdin);
    freopen("asmax.out","w",stdout);
    scanf("%d", &n);
    for (i=1;i<=n;i++)
        scanf("%d", &dp[i]);
    for (i=1;i<n;i++) {
        scanf("%d%d", &a, &b);
        v[a].push_back(b);
        v[b].push_back(a);
    }
    dfs(1,0);
    printf("%d", mx);
    return 0;
}