Pagini recente » Cod sursa (job #1905570) | Cod sursa (job #107723) | Cod sursa (job #485663) | Cod sursa (job #779453) | Cod sursa (job #2610610)
#include <bits/stdc++.h>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
int v[16001],rasp,d[16001];
vector<int>muchii[16001];
void dfs(int nod,int par)
{
d[nod] = v[nod];
for(auto it : muchii[nod])
if(it != par)
{
dfs(it,nod);
if(d[it] > 0)
d[nod] += d[it];
}
rasp = max(rasp,d[nod]);
}
int main()
{
int n;
f >> n;
for(int i = 1; i <= n; ++i)
f >> v[i];
for(int i = 1; i < n; ++i)
{
int x,y;
f >> x >> y;
muchii[x].push_back(y);
muchii[y].push_back(x);
}
rasp = v[1];
dfs(1,0);
g << rasp;
return 0;
}