Cod sursa(job #2119158)

Utilizator serban24Popovici Serban-Florin serban24 Data 31 ianuarie 2018 18:35:29
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("asmax.in");
ofstream fout("asmax.out");

int val[16005];
vector <int> mv[16005];
int viz[16005],dp[16005];

int dinamica(int x){
	int i,y;

	viz[x]=1;
	dp[x]=val[x];

	for(i=0;i<mv[x].size();i++){
		y=mv[x][i];
		if(!viz[y]){
			dp[x]+=dinamica(y);
		}
	}

	if(dp[x]<0)
		return 0;
	return dp[x];
}

int main(){
	int n,i,x,y;

	fin>>n;

	for(i=1;i<=n;i++)
		fin>>val[i];

	for(i=1;i<n;i++){
		fin>>x>>y;
		mv[x].push_back(y);
		mv[y].push_back(x);
	}


	dinamica(1);

	int maxv=INT_MIN;

	for(i=1;i<=n;i++)
		if(dp[i]>maxv)
			maxv=dp[i];

	fout<<maxv;

    return 0;
}