Cod sursa(job #2662338)

Utilizator Leonard123Mirt Leonard Leonard123 Data 23 octombrie 2020 21:42:57
Problema Asmax Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<fstream>
using namespace std;
 
ifstream cin("asmax.in");
ofstream cout("asmax.out");

int val[16005], tata[16005], eTata[1005], n, x, y, best = -1000;

void bestSum(int copil) {
	if(copil == 0)
		return;
	best = max(val[copil], best);  
	val[tata[copil]] = max(val[tata[copil]], val[tata[copil]] + val[copil]);
	bestSum(tata[copil]);
}
 
int main() {
	cin >> n;	
	for (int i = 1; i <= n; i++)
		cin >> val[i];
	for (int i = 1; i < n; i++) {
		cin >> x >> y;
		eTata[x] = 1;
		tata[y] = x;	
	}	
	for (int i = 1; i <= n; i++) 
		if (eTata[i] == 0)
			bestSum(i);	
	cout << best;
}