Pagini recente » Cod sursa (job #3275077) | Cod sursa (job #665275) | Cod sursa (job #3168573) | Cod sursa (job #548709) | Cod sursa (job #2662338)
#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;
}