Cod sursa(job #2050378)

Utilizator georgerapeanuRapeanu George georgerapeanu Data 28 octombrie 2017 09:39:30
Problema Asmax Scor 100
Compilator cpp Status done
Runda hlo2017_cj_av_l4 Marime 0.62 kb
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
vector<int> G[16005];
int N;
int V[16005];
int rez=-(1<<30);
int dfs(int nod,int tata)
{
    int sum=V[nod];
    for(auto it:G[nod])
        if(it!=tata)
            {int tmp=dfs(it,nod);sum=max(sum,sum+tmp);}
    rez=max(rez,sum);
    return sum;
}
int main()
{
    freopen("asmax.in","r",stdin);
    freopen("asmax.out","w",stdout);
    cin>>N;
    for(int i=1;i<=N;i++)cin>>V[i];
    for(int i=1;i<N;i++)
    {
        int x,y;
        cin>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    dfs(1,0);
    cout<<rez;
    return 0;
}