Pagini recente » Cod sursa (job #1990524) | Cod sursa (job #1796641) | Monitorul de evaluare | Cod sursa (job #1890145) | Cod sursa (job #360921)
Cod sursa(job #360921)
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> v[16005];
int n,k,viz[16005],nr,a,b,x[16005];
int recur ( int poz)
{
int i,q,sum,knr;
q=v[poz].size();
for(i=0;i<q;i++)
if(viz[v[poz][i]]==0)
{
knr=recur(v[poz][i]);
if(knr>0)
sum=sum+knr;
}
sum=sum+x[poz];
return sum;
}
int main ()
{
int i;
freopen( "asmax.in" , "r" , stdin);
freopen( "asmax3.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);
}
nr=recur(1);
printf("%d",nr);
return 0;
}