Pagini recente » Cod sursa (job #2264273) | Cod sursa (job #1857338) | Cod sursa (job #1739422) | Cod sursa (job #2269887) | Cod sursa (job #361015)
Cod sursa(job #361015)
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> v[16005];
long n,k,viz[16005],nr,a,b,x[16005];
long recur ( long poz)
{
long i,q,sum=0,knr;
q=v[poz].size();
for(i=0;i<q;i++)
{
knr=recur(v[poz][i]);
if(knr>0)
sum=sum+knr;
}
sum=sum+x[poz];
return sum;
}
int main ()
{
long i;
freopen("asmax.in" , "r" , stdin);
freopen("asmax.out" , "w" , stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)
scanf("%ld",&x[i]);
for(i=1;i<=n-1;i++)
{
scanf("%ld%ld",&a,&b);
v[a].push_back(b);
v[b].push_back(a);
}
nr=recur(1);
printf("%ld",nr);
return 0;
}