Cod sursa(job #2235877)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 27 august 2018 11:50:18
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

const int N=16000+5;

int n,val[N],ans=0;
bool viz[N];
vector<int>v[N];
int lol=-(1<<30);

int slove(int nod)
{
    viz[nod]=1;
    int ans=val[nod];
    for(auto nou:v[nod])
        if(viz[nou]==0)
        {
            int x=slove(nou);
            if(x>0)
                ans+=x;
        }
    lol=max(lol,ans);
    return ans;
}

int main()
{
    freopen("asmax.in","r",stdin);
    freopen("asmax.out","w",stdout);
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>val[i];
    for(int i=1;i<n;i++)
    {
        int a,b;
        cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    slove(1);
    cout<<lol<<"\n";
    return 0;
}