Pagini recente » Cod sursa (job #595819) | Cod sursa (job #992227) | Cod sursa (job #566183) | Rating Tirisi Claudiu (EltMenim) | Cod sursa (job #2492464)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
vector<int>graph[16005];
int n, valori[16005], from, to, dp[16006], maxi=-1005;
bool viz[16005];
void parcurgere(int ind)
{
viz[ind]=1;
for (int &v:graph[ind])
{
if (!viz[v])
{
parcurgere(v);
dp[ind]=max(dp[ind],dp[ind]+dp[v]);
}
}
}
int main( )
{
f >> n;
for (int i=1; i<=n; ++i)
f >> dp[i];
for (int i=1; i<n; ++i)
{
f >> from >> to;
graph[from].push_back(to);
graph[to].push_back(from);
}
parcurgere(1);
for (int i=1; i<=n; ++i)
{
if (dp[i]>maxi)
maxi=dp[i];
}
g << maxi;
return 0;
}