Pagini recente » Cod sursa (job #586374) | Cod sursa (job #2240696) | Cod sursa (job #722172) | Cod sursa (job #2665471) | Cod sursa (job #2737609)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
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 () {
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
for (int i = 1; i < n; i++) {
int x, y;
fin >> x >> y;
nod[x].push_back(y);
nod[y].push_back(x);
}
viz[1] = true;
dfs(1);
fout << maxx;
}