Cod sursa(job #1280369)

Utilizator rangerChihai Mihai ranger Data 1 decembrie 2014 21:11:20
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream>
#include<vector>
using namespace std;

ifstream cin("asmax.in");
ofstream cout("asmax.out");
#define pb push_back
const int nmax = 16100;

int n,i,c[nmax],rs=-100000000;
vector<int> g[nmax];

void dfs(int k, int p=-1)
{
    for (int i=0;i<g[k].size();i++)
        if (g[k][i]!=p)
    {
        dfs(g[k][i],k);
        if (c[g[k][i]]>0) c[k]+=c[g[k][i]];
    }
    rs=max(rs,c[k]);
}

int main()
{
    cin >> n;
    for (i=1;i<=n;i++)cin>>c[i];
    for (i=1;i<n;i++)
    {
        int x,y;
        cin >> x >> y;
        g[x].pb(y);
        g[y].pb(x);
    }
    dfs(1);
    cout << rs;
    return  0;
}