Pagini recente » Cod sursa (job #1743628) | Cod sursa (job #2272660) | Cod sursa (job #159902) | Cod sursa (job #288305) | Cod sursa (job #2519999)
#include <bits/stdc++.h>
#define Nmax 16005
using namespace std;
ifstream fin ("asmax.in");
ofstream fout ("asmax.out");
int n, s[Nmax], viz[Nmax], maxx, x, y;
vector <int> v[Nmax];
void dfs(int x)
{
viz[x]=1;
for(int i=0;i<v[x].size();i++)
if(viz[v[x][i]]==0)
{
dfs(v[x][i]);
s[x]=max(s[i], s[v[x][i]]+s[x]);
}
}
int main()
{
fin >> n;
for(int i=1;i<=n;i++)
fin >> s[i];
for(int i=1;i<n;i++)
{
fin >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs(1);
for(int i=1;i<=n;i++)
maxx=max(maxx, s[i]);
fout << maxx;
return 0;
}