Pagini recente » Cod sursa (job #995336) | Cod sursa (job #394861) | Cod sursa (job #569428) | Cod sursa (job #2559302) | Cod sursa (job #801896)
Cod sursa(job #801896)
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
ifstream f("asmax.in");
ofstream h("asmax.out");
vector <int> g[16001];
int n,i,x,y,a[16001],mx,s[16001];
bool sel[16001];
void DF (int x)
{
vector <int> :: iterator it;
sel[x]=true;
s[x]=a[x];
for (it=g[x].begin();it!=g[x].end();it++)
if (!sel[*it])
{
DF(*it);
if (s[*it]>0) s[x]+=s[*it];
}
}
int main ()
{
f>>n;
for (i=1;i<=n;i++) f>>a[i];
for (i=1;i<n;i++)
{
f>>x>>y;
g[x].pb(y);
g[y].pb(x);
}
mx=-999999;
DF(1);
for (i=1;i<=n;i++) if (s[i]>mx) mx=s[i];
h<<mx<<'\n';
return 0;
}