Pagini recente » Cod sursa (job #743598) | Cod sursa (job #2785295) | Rating Szabo Zoltan (Tincses) | Cod sursa (job #1797515) | Cod sursa (job #2050366)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
vector<int> G[16005];
int N;
int V[16005];
int dfs(int nod,int tata)
{
int sum1=V[nod],sum2=0;
for(auto it:G[nod])
if(it!=tata)
{int tmp=dfs(it,nod);sum1=max(sum1,sum1+tmp);sum2=max(sum2,tmp);}
return max(sum1,sum2);
}
int main()
{
freopen("asmax.in","r",stdin);
freopen("asmax.out","w",stdout);
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;
G[x].push_back(y);
G[y].push_back(x);
}
cout<<dfs(1,0);
return 0;
}