Pagini recente » Cod sursa (job #293416) | Cod sursa (job #2363607)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("asmax.in");
ofstream fout("asmax.out");
vector <int> m[16005];
int val[16005],viz[16005],cost[16005];
void Dfs(int nod){
viz[nod]=1;
int i;
for(i=0;i<m[nod].size();i++){
if(viz[m[nod][i]]==0){
Dfs(m[nod][i]);
cost[nod]=max(cost[nod], cost[nod]+cost[m[nod][i]]);
}
}
}
int main()
{
int n,i,x,y,sol;
fin>>n;
for(i =1;i<=n;i++)
fin>>cost[i];
for(i=1;i<n;i++){
fin>>x>>y;
m[x].push_back(y);
m[y].push_back(x);
}
Dfs(1);
sol=cost[1];
for(i=2;i<=n;i++){
if(sol<cost[i])
sol=cost[i];
}
fout<<sol;
return 0;
}