Cod sursa(job #801893)

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

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

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);
    }
DF(1);
for (i=1;i<=n;i++) if (s[i]>mx) mx=s[i];
h<<mx<<'\n';
return 0;
}