Cod sursa(job #2002974)

Utilizator refugiatBoni Daniel Stefan refugiat Data 21 iulie 2017 12:41:36
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream si("asmax.in");
ofstream so("asmax.out");
vector<int>v[16005];
int x[16005],sum,t[16005];
int dfs(int nod)
{
    int s=x[nod];
    for(int f:v[nod])
    {
        if(t[nod]==f)
            continue;
        t[f]=nod;
        int n=dfs(f);
        s+=n;
    }
    sum=max(s,sum);
    return max(s,0);
}
int main()
{
    int n;
    si>>n;
    for(int i=1;i<=n;++i)
    {
        si>>x[i];
    }
    int a,b;
    for(int i=1;i<n;++i)
    {
        si>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    dfs(1);
    so<<sum;
    return 0;
}