Pagini recente » Cod sursa (job #136960) | Cod sursa (job #273338) | Cod sursa (job #2065052) | Cod sursa (job #804922) | Cod sursa (job #2009061)
#include <bits/stdc++.h>
using namespace std;
const int N=16003;
int n,v[N],best[N],sol=-1e9;
vector<int>g[N];
void dfs(int nod,int father) {
best[nod]=v[nod];
for(auto it:g[nod]) {
if(it!=father) {
dfs(it,nod);
best[nod]+=max(0,best[it]);
}
}
sol = max(sol, best[nod]);
}
int main() {
ifstream cin("asmax.in");
ofstream cout("asmax.out");
cin>>n;
for(int i=1; i<=n; ++i)cin>>v[i];
for(int i=1; i<=n; ++i) {
int a,b;
cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}
dfs(1,0);
cout<<sol;
}