Pagini recente » Cod sursa (job #2610755) | Cod sursa (job #406827) | Cod sursa (job #382450) | Cod sursa (job #2000393) | Cod sursa (job #801895)
Cod sursa(job #801895)
#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);
}
DF(1);
for (i=1;i<=n;i++) if (s[i]>mx) mx=s[i];
h<<mx<<'\n';
return 0;
}