Pagini recente » Cod sursa (job #1324588) | Cod sursa (job #968811) | Cod sursa (job #2726423) | Cod sursa (job #1471578) | Cod sursa (job #2460051)
#include <bits/stdc++.h>
using namespace std;
#define NMAX 16003
ifstream fin ("asmax.in");
ofstream fout ("asmax.out");
int V [NMAX], ans = -INT_MAX;
int a, b, N;
vector <int> graf [NMAX];
void dfs (int nod, int tata){
for (auto fiu : graf [nod]){
if (fiu != tata){
dfs (fiu, nod);
V [nod] += max (0, V [fiu]);
}
}
ans = max (ans, V [nod]);
}
int main (){
fin >> N;
for (int i = 1; i <= N; i ++)
fin >> V [i];
for (int i = 1; i < N; i ++){
fin >> a >> b;
graf [a].push_back (b);
graf [b].push_back (a);
}
dfs (1, -1);
fout << ans;
return 0;
}