Cod sursa(job #2663006)

Utilizator Leonard123Mirt Leonard Leonard123 Data 25 octombrie 2020 07:15:58
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<bits/stdc++.h>
#define pb push_back
using namespace std;
 
ifstream fin("asmax.in");
ofstream fout("asmax.out");
 
int  val[16005], n, x, y, best = -1e5, verify[16005];
vector <int> next_nod[16005];
 
void best_sum(int nod, int tata) {
	verify[nod] = 1;
	for (auto next  : next_nod[nod]) 
		if (verify[next] == 0)
			best_sum(next, nod);
	best = max(val[nod], best);  
	val[tata] = max(val[tata], val[tata] + val[nod]);
}
 
int main() {
	cin >> n;	
	for (int i = 1; i <= n; i++)
		cin >> val[i];
	for (int i = 1; i < n; i++) {
		cin >> x >> y;
		next_nod[x].pb(y);
		next_nod[y].pb(x);
	}	
	best_sum(1, 0);
	cout << best;
}