Cod sursa(job #3239967)

Utilizator paull122Paul Ion paull122 Data 9 august 2024 22:32:43
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>

#define VMAX 100
#define NMAX 16000
#define LOG 21
#define INF (int)(10e8)
#define MOD 1000000007
#define ll   long long int


#define NIL 0

using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");

vector<int> adj[NMAX+1];
int v[NMAX+1],dp[NMAX+1];
int n;


void dfs(int x,int t)
{
    int smax=v[x];
    for(int i : adj[x])
    {
        if(i!=t)
        {
            dfs(i,x);
            smax += max(dp[i],0);
        }
    }
    dp[x]=smax;
}
int main()
{
    fin >> n;
    for(int i=1;i<=n;i++)
    {
        fin >> v[i];
    }
    for(int i=1;i<=n-1;i++)
    {
        int x,y;
        fin >> x >> y;
        adj[x].push_back(y);
        adj[y].push_back(x);
    }
    dfs(1,0);
    int res = -INF;
    for(int i=1;i<=n;i++)
    {
        res=max(res,dp[i]);
    }
    fout << res;
}