Cod sursa(job #371609)

Utilizator allynaAlina S allyna Data 5 decembrie 2009 22:39:36
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#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;

}