Pagini recente » Cod sursa (job #3000043) | Cod sursa (job #1640181) | Cod sursa (job #3150841) | Cod sursa (job #2933958) | Cod sursa (job #3157531)
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
const int N=16005;
vector<int>a[N];
int mx=INT_MIN;
int n,m,d[N],val[N];
void dfs(int nod,int tt)
{
d[nod]=val[nod];
for(auto x: a[nod])
{
if(x==tt)
continue;
dfs(x,nod);
d[nod]=max(d[nod],d[nod]+d[x]);
}
mx=max(mx,d[nod]);
}
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>val[i];
int x,y;
for(int i=1;i<n;i++)
{
f>>x>>y;
a[x].pb(y);
a[y].pb(x);
}
dfs(1,0);
g<<mx;
return 0;
}