Cod sursa(job #2577584)

Utilizator mariamirabella2Bucur-Sabau Maria-Mirabela mariamirabella2 Data 9 martie 2020 16:51:37
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream cin("asmax.in");
ofstream cout("asmax.out");

vector <int> v[30005];
int n,x,nr,y,pula[16005],viz[16005],m,rad;
int d[16005];

void dfs(int nod){
	viz[nod]=1;
	d[nod]=pula[nod];
	for(auto x :v[nod]){
		if(!viz[x]){
			dfs(x);
			if(d[x]>0){
				d[nod]+=d[x];
			}
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>pula[i];
	}
	for(int i=1;i<n;i++){
		cin>>x>>y;
		v[y].push_back(x);
		v[x].push_back(y);
	}

	dfs(1);
	int maxx=-100005;
	for(int i=1;i<=n;i++){
		maxx=max(d[i],maxx);
	}
	cout<<maxx;
	return 0;
}