Cod sursa(job #361016)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 3 noiembrie 2009 13:56:54
Problema Asmax Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>

#include<vector>

using namespace std;

vector <int> v[16005];
int max=-2000000;
int n,k,viz[16005],nr,a,b,x[16005];

int recur (int poz)
{
	int 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];
    if(sum>max)
        max=sum;
    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("%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);
		}
        nr=recur(1);
        printf("%d",max);
		return 0;
}