Pagini recente » Cod sursa (job #1968895) | Cod sursa (job #211278) | Cod sursa (job #2694584) | Cod sursa (job #1337146) | Cod sursa (job #2682828)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n,cost[16010],d[16010],i,a,b,x,y,viz[16010],maxi=INT_MIN;
vector<int>v[16010];
void rec(int nod)
{
viz[nod]=1;
if(v[nod].size())
for(auto it:v[nod])
if(!viz[it])
{
rec(it);
viz[it]=1;
d[nod]=max(d[nod],d[nod]+d[it]);
}
}
int main()
{
fin>>n;
for(i=1; i<=n; i++)
fin>>cost[i], d[i]=cost[i];
for(i=1; i<n; i++)
{
fin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
rec(1);
for(i=1; i<=n; i++)
maxi=max(d[i],maxi);
fout<<maxi;
return 0;
}