Pagini recente » Cod sursa (job #3266235) | Cod sursa (job #2671511) | Cod sursa (job #1300193) | Cod sursa (job #1022572) | Cod sursa (job #2405250)
#include<bits/stdc++.h>
#define N 16050
using namespace std;
int n,rs,s,a[N];
vector<int>V[N];
int DFS(int x, int pr) {
int s2=0,mx=-1e9,s3=0;
for (auto it:V[x]) {
if (it!=pr) {
s3=DFS(it,x);
mx=max(mx,s3);
s2+=s3;
}
}
rs=max(rs, max(mx+a[x],s-s2));
return s2+a[x];
}
int main() {
ifstream cin("asmax.in");
ofstream cout("asmax.out");
cin>>n;
for (int i=1; i<=n; ++i) cin>>a[i], s+=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);
}
rs=s;
DFS(1,-1);
cout<<rs;
return 0;
}