Pagini recente » Cod sursa (job #1254626) | Cod sursa (job #1077326) | Clasament ah0 | Cod sursa (job #2162825) | Cod sursa (job #2794358)
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
#define DIM 16005
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
int n, v[DIM], maxi = -INF;
vector <int> edges[DIM];
bitset <DIM> used;
void dfs(int nod)
{
used[nod] = 1;
for(auto child : edges[nod])
if(!used[child])
{
dfs(child);
v[nod] = max(v[nod], v[nod] + v[child]);
}
maxi = max(maxi, v[nod]);
}
int main()
{
f >> n;
for(int i = 1; i <= n; i++)
f >> v[i];
for(int i = 1; i < n; i++)
{
int x, y;
f >> x >> y;
edges[x].push_back(y);
edges[y].push_back(x);
}
dfs(1);
g << maxi;
return 0;
}