Pagini recente » Cod sursa (job #239817) | Cod sursa (job #623816) | Cod sursa (job #1468448) | Cod sursa (job #2048610)
#include<iostream>
#include<fstream>
#include<vector>
#define DN 16010
using namespace std;
fstream fin("asmax.in",ios::in),fout("asmax.out",ios::out);
int c[DN],n,ap[DN],maxi=-DN*1001;
vector<int> v[DN];
void dfs(int nod)
{
ap[nod]=1;
for(auto i: v[nod])
{
if(ap[i]==0)
{
dfs(i);
if(c[i]>0) c[nod]+=c[i];
}
}
maxi=max(maxi,c[nod]);
}
int main()
{
int i,a,b;
fin>>n;
for(i=1;i<=n;i++) fin>>c[i];
for(i=1;i<n;i++)
{
fin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
dfs(1);
fout<<maxi;
}