Cod sursa(job #801896)

Utilizator zeeboBuzatu Vlad zeebo Data 25 octombrie 2012 13:23:25
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
ifstream f("asmax.in");
ofstream h("asmax.out");

vector <int> g[16001];
int n,i,x,y,a[16001],mx,s[16001];
bool sel[16001];

void DF (int x)
{
vector <int> :: iterator it;
    sel[x]=true;
    s[x]=a[x];
    for (it=g[x].begin();it!=g[x].end();it++)
        if (!sel[*it])
        {
            DF(*it);
            if (s[*it]>0) s[x]+=s[*it];
        }

}
int main ()
{
    f>>n;
    for (i=1;i<=n;i++) f>>a[i];
    for (i=1;i<n;i++)
    {
        f>>x>>y;
        g[x].pb(y);
        g[y].pb(x);
    }
    mx=-999999;
DF(1);
for (i=1;i<=n;i++) if (s[i]>mx) mx=s[i];
h<<mx<<'\n';
return 0;
}