Pagini recente » Cod sursa (job #2359167) | Cod sursa (job #1202477) | Cod sursa (job #1210578) | Cod sursa (job #447346) | Cod sursa (job #2663007)
#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() {
fin >> n;
for (int i = 1; i <= n; i++)
fin >> val[i];
for (int i = 1; i < n; i++) {
fin >> x >> y;
next_nod[x].pb(y);
next_nod[y].pb(x);
}
best_sum(1, 0);
fout << best;
}