Pagini recente » Cod sursa (job #2927729) | Cod sursa (job #999094) | Cod sursa (job #913726) | Cod sursa (job #191827) | Cod sursa (job #362342)
Cod sursa(job #362342)
#include<stdio.h>
#include<vector>
#define N_MAX 16002
using namespace std;
vector <int> v[N_MAX];
int n,k,u[N_MAX],num;
int val=-200000,a,b,x[N_MAX];
int f(int poz)
{
int i,q,s=0,nr;
q=v[poz].size();
u[poz]=1;
for(i=0;i<q;i++)
if(u[v[poz][i]]==0)
{
nr=f(v[poz][i]);
if(nr>0)
s=s+nr;
}
s=s+x[poz];
if(s>val)
val=s;
return s;
}
int main ()
{
long i;
freopen("asmax.in" , "r" , stdin);
freopen("asmax.out" , "w" , stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&x[i]);
for(i=1;i<=n-1;i++)
{
scanf("%d%d",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
num=f(1);
num=val;
printf("%d",num);
return 0;
}