Pagini recente » Istoria paginii utilizator/2amazing4me | Istoria paginii utilizator/mihnealook | Cod sursa (job #2577584)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream cin("asmax.in");
ofstream cout("asmax.out");
vector <int> v[30005];
int n,x,nr,y,pula[16005],viz[16005],m,rad;
int d[16005];
void dfs(int nod){
viz[nod]=1;
d[nod]=pula[nod];
for(auto x :v[nod]){
if(!viz[x]){
dfs(x);
if(d[x]>0){
d[nod]+=d[x];
}
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>pula[i];
}
for(int i=1;i<n;i++){
cin>>x>>y;
v[y].push_back(x);
v[x].push_back(y);
}
dfs(1);
int maxx=-100005;
for(int i=1;i<=n;i++){
maxx=max(d[i],maxx);
}
cout<<maxx;
return 0;
}