Cod sursa(job #1733717)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 25 iulie 2016 14:49:06
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <cstdio>
#include <algorithm>
#include <vector>
#define MaxN  16005
#define INF 2000000000
using namespace std;

int N,cost[MaxN],a,b,val,Max=-INF;
vector<int>List[MaxN];
bool visited[MaxN]={};
int DFS(int node)
{
	visited[node]=true;
	for(int i=0;i<List[node].size();i++)
	{
		if(!visited[List[node][i]])
		{
			val=DFS(List[node][i]);
			if(val>0)cost[node]+=val;
		}
	}
	return cost[node];
}
int main()
{
    freopen("asmax.in","r",stdin);
    freopen("asmax.out","w",stdout);
	scanf("%d",&N);
	for(int i=1;i<=N;i++)
		scanf("%d",&cost[i]);
	for(int i=1;i<N;i++)
	{
		scanf("%d%d",&a,&b);
		List[a].push_back(b);
		List[b].push_back(a);
	}
	DFS(1);
	for(int i=1;i<=N;i++)
		Max=max(Max,cost[i]);
	printf("%d",Max);
	return 0;
}