Cod sursa(job #2013052)

Utilizator ARobertAntohi Robert ARobert Data 20 august 2017 12:53:44
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <bits/stdc++.h>

using namespace std;

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

int i,j,n,x,y,s,t, val[16001], sum[16001], m;
vector<int> v[16001];

void dfs(int nod, int tata)
{
    sum[nod]=val[nod];
    for (auto i: v[nod])
        if (i!=tata)
        {
            dfs(i,nod);
            sum[nod]+=max(sum[i], 0);
        }
    m=max(m, sum[nod]);
}

int main()
{
    m=-1e9;
    fin>>n;
    for (i=1;i<=n;i++)
        fin>>val[i];
    for (i=1;i<n;i++)
    {
        fin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1,0);
    fout<<m;
    return 0;
}