Pagini recente » Cod sursa (job #2709043) | Cod sursa (job #2247226) | Monitorul de evaluare | Info-Oltenia 2019 Proba pe Echipe | Cod sursa (job #2013080)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int n,i,j,sum[16005],viz[16005],maxi,a,b;
vector<int> v[16005];
void dfs(int nod)
{
int i,vecin;
for(i=0;i<v[nod].size();i++)
{
vecin=v[nod][i];
if(!viz[vecin])
{
viz[vecin]=1;
dfs(vecin);
if(sum[vecin]>0) sum[nod]+=sum[vecin];
}
}
if(sum[nod]>maxi) maxi=sum[nod];
}
int main()
{
cin>>n;
for(i=1;i<=n;i++) cin>>sum[i];
for(i=1;i<n;i++)
{
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
maxi=-100000000;
viz[1]=1;
dfs(1);
cout<<maxi<<'\n';
return 0;
}