Cod sursa(job #953450)

Utilizator cnt_tstcont teste cnt_tst Data 26 mai 2013 10:58:10
Problema Asmax Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
vector<int>L[100001];
int n,m,x,y,i,v[100001],nr,maxim = -10000,c[100010],s[100010];
void adancime(int x)
{
	v[x]=1;
	s[x] = 1;
	int sum = 0;
	for(int i=0;i<L[x].size();i++)
		if(v[L[x][i]]==0) {
			adancime(L[x][i]);
			if (s[L[x][i]] > 0)
				sum += s[L[x][i]];
		}
		
	if (c[x] > c[x] + sum)
		s[x] = c[x];
	else
		s[x] = c[x] + sum;
	
	if (s[x] > maxim)
		maxim = s[x];
	
}

int main()
{
	f>>n;
	for (i=1;i<=n;i++)
		f>>c[i];
	
	for(i=1;i<n-1;i++)
	{
		f>>x>>y;
		L[x].push_back(y);
		L[y].push_back(x);
	}
	
	adancime(1);
		
	g<<maxim;
	return 0;
}