Pagini recente » Cod sursa (job #610470) | Cod sursa (job #2684964) | simulare_lot_seniori_2 | Cod sursa (job #134433) | Cod sursa (job #2247162)
#include<bits/stdc++.h>
#define NMAX 16010
using namespace std;
vector<int>V[NMAX];
int dp[NMAX];
int viz[NMAX];
int a[NMAX];
int n, rs;
int DFS(int x) {
int v=0;
viz[x]=1;
for (auto it : V[x]) {
if (!viz[it]) {
v+=DFS(it);
}
}
// cout<<x<<" "<<v+a[x]<<'\n';
rs=max(rs,v+a[x]);
return max(v+a[x], 0);
}
int main() {
ifstream cin("asmax.in");
ofstream cout("asmax.out");
cin>>n;
for (int i=1; i<=n; i++) cin>>a[i];
for (int i=1; i<n; i++) {
int x,y; cin>>x>>y;
V[x].push_back(y);
V[y].push_back(x);
}
DFS(1);
cout<<rs;
return 0;
}