Pagini recente » Cod sursa (job #2093517) | Cod sursa (job #2189429) | Cod sursa (job #2076605) | Cod sursa (job #2135451) | Cod sursa (job #3281014)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
vector<int>l[16000];
int n,v[16000],dp[16000],x,y,rot[16000],root,maxim=-2e9;
void dfs(int nod)
{
for(auto next:l[nod])
{
dfs(next);
dp[nod]+=v[next];
}
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>v[i];
}
for(int i=1;i<n;i++)
{
fin>>x>>y;
l[x].push_back(y);
rot[y]=1;
}
for(int i=1;i<=n;i++)
{
if(rot[i]==0)
root=i;
}
dfs(root);
for(int i=1;i<=n;i++)
{
maxim=max(dp[i],maxim);
}
fout<<maxim;
}