Cod sursa(job #713490)

Utilizator ms-ninjacristescu liviu ms-ninja Data 14 martie 2012 18:15:43
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
#include <vector>
using namespace std;
#define dim 160005
vector <int> v[dim];
int viz[dim], d[dim], rez=-(1<<30);

void dfs(int nod)
{
	viz[nod]=1;
	for(int k=0;k<v[nod].size();++k)
		if(viz[v[nod][k]]==0)
		{
			dfs(v[nod][k]);
			if(d[v[nod][k]]>0)
				d[nod]+=d[v[nod][k]];
		}
}

int main()
{
	ifstream fin("asmax.in");
	ofstream fout("asmax.out");
	int n, i, a, b;
	fin>>n;
	for(i=1;i<=n;++i)
		fin>>d[i];
	for(i=1;i<n;++i)
	{
		fin>>a >>b;
		v[a].push_back(b);
		v[b].push_back(a);
	}
	dfs(1);
	for(i=1;i<=n;++i)
		if(rez<d[i])
			rez=d[i];
		fout<<rez;
	
	return 0;
}