Cod sursa(job #361015)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 3 noiembrie 2009 13:49:31
Problema Asmax Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#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;
}