Pagini recente » Cod sursa (job #961885) | Cod sursa (job #1651142) | Cod sursa (job #2844814) | Istoria paginii utilizator/deyutza09 | Cod sursa (job #2737590)
#include<bits/stdc++.h>
using namespace std;
int n, v[16005], maxx = INT_MIN;
bitset <16005> viz;
vector <int> nod[16005];
void dfs(int i) {
for (int itr : nod[i])
if (!viz[itr]) {
viz[itr] = true;
dfs(itr);
v[i] = max(v[i], v[i] + v[itr]);
}
maxx = max(maxx, v[i]);
}
int main () {
cin >> n;
for (int i = 1; i <= n; i++)
cin >> v[i];
for (int i = 1; i < n; i++) {
int x, y;
cin >> x >> y;
nod[x].push_back(y);
nod[y].push_back(x);
}
viz[1] = true;
dfs(1);
cout << maxx;
}