Pagini recente » Cod sursa (job #828567) | Cod sursa (job #301400) | Cod sursa (job #259860) | Cod sursa (job #2958957) | Cod sursa (job #2663006)
#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;
}