Pagini recente » Cod sursa (job #385274) | Cod sursa (job #2136209) | Cod sursa (job #1810884) | Cod sursa (job #1107793) | Cod sursa (job #2596478)
#include <bits/stdc++.h>
using namespace std;
ifstream ci("asmax.in");
ofstream cou("asmax.out");
int val[16005],n;
vector<int>v[16005];
int dp[16005];
int vis[16005];
void citire(){
int i,a,b;
ci>>n;
for(i=1;i<=n;i++){
ci>>val[i];
}
for(i=1;i<=n;i++){
ci>>a>>b;
v[b].push_back(a);
v[a].push_back(b);
}
}
void init(){
int i;
for(i=1;i<=n;i++){
dp[i]=val[i];
}
}
void rez(int nod){
vis[nod]=1;
for(auto i:v[nod]){
if(vis[i]==0){
rez(i);
if(dp[i]>0){
dp[nod]+=dp[i];
}
}
}
}
int main()
{
int mx=-10001;
citire();
init();
rez(1);
for(int i=1;i<=n;i++){
mx=max(mx,dp[i]);
}
cou<<mx;
return 0;
}