Pagini recente » Cod sursa (job #2413510) | Cod sursa (job #151611) | Cod sursa (job #1633522) | Cod sursa (job #2535996) | Cod sursa (job #1901442)
#include <bits/stdc++.h>
#define Nmax 16003
#define INF 2000000000
using namespace std;
int n;
int v[Nmax],dp[Nmax],sol;
vector<int>L[Nmax];
bitset<Nmax>viz;
void Citire()
{
int i,x,y;
ifstream fin("asmax.in");
fin>>n;
for(i=1;i<=n;++i)
fin>>v[i];
for(i=1;i<n;++i)
{
fin>>x>>y;
L[x].push_back(y);
L[y].push_back(x);
}
fin.close();
}
void DFS(int x)
{
viz[x]=1;
dp[x]=v[x];
for(auto y : L[x])
{
if(viz[y]==0)
{
DFS(y);
if(dp[y]>0)
dp[x]+=dp[y];
}
}
}
int main()
{
Citire();
DFS(1);
sol=-INF;
int i;
for(i=1;i<=n;++i)
sol=max(sol,dp[i]);
ofstream fout("asmax.out");
fout<<sol<<"\n";
fout.close();
return 0;
}