Pagini recente » Cod sursa (job #2363949) | Cod sursa (job #1360974) | Cod sursa (job #171512) | Cod sursa (job #2183066) | Cod sursa (job #2044715)
#include <bits/stdc++.h>
#define DM 16005
#define pb push_back
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
vector<int>mch[DM];
int n,a,b,dp[DM],mx;
bitset<DM>viz;
int solve(int nod){
if(!viz[nod]){
viz[nod]=1;
for(auto i:mch[nod]) if(!viz[i])
dp[nod]=max(dp[nod],dp[nod]+solve(i));
}
return dp[nod];
}
int main()
{
fin>>n;
for(int i=1;i<=n;++i)
fin>>dp[i];
for(int i=1;i<n;++i){
fin>>a>>b;
mch[a].pb(b);
mch[b].pb(a);
}
solve(1);
for(int i=1;i<=n;++i)
mx=max(dp[i],mx);
fout<<mx;
return 0;
}