Cod sursa(job #2430809)

Utilizator TudorChirila11Tudor Chirila TudorChirila11 Data 16 iunie 2019 16:21:01
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
#define mult 20000000
#define pb push_back
using namespace std;
int n, m, i, j, ans, s[16004], x, y;
vector <int> v[16006];
bool viz[16007];
void dfs(int nod)
{
    viz[nod]=1;
    for(int i=0;i<v[nod].size();i++)
        if(!viz[v[nod][i]])
    {
        dfs(v[nod][i]);
        if(s[v[nod][i]]>0)
            s[nod]+=s[v[nod][i]];
    }
}
int main()
{
    freopen("asmax.in","r",stdin);
    freopen("asmax.out","w",stdout);
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>s[i];
    for(i=1;i<n;i++)
    {
        cin>>x>>y;
        v[x].pb(y);
        v[y].pb(x);
    }
    dfs(1);
    ans=-mult;
//    for(i=1;i<=n;i++)
  //      cout<<s[i]<<' ';

    for(i=1;i<=n;i++)
        ans=max(ans,s[i]);
    cout<<ans<<'\n';
    return 0;
}