Pagini recente » Cod sursa (job #1533338) | Cod sursa (job #1036844) | Statistici Ana Roxana Pop (rala03) | Cod sursa (job #1356799) | Cod sursa (job #2300640)
#include <bits/stdc++.h>
#include <fstream>
#include <vector>
#include <bitset>
#include <unordered_map>
#include <algorithm>
#include <queue>
#include <math.h>
#include <iomanip>
#include <stack>
#include <string.h>
#include <set>
using namespace std;
typedef long long ll;
ifstream in("asmax.in");
ofstream out("asmax.out");
const int DIM = 16007;
vector <int> v[DIM];
int w[DIM];
void dfs(int nod = 1, int father = 0)
{
for(auto i : v[nod])
if(i != father)
{
dfs(i, nod);
if(w[i] > 0)
w[nod] += w[i];
}
}
int main()
{
int n;
in >> n;
for(int i = 1; i <= n; i++)
in >> w[i];
for(int i = 1; i < n; i++)
{
int x, y;
in >> x >> y;
v[x].push_back(y);
v[y].push_back(x);
}
dfs();
int max_sum = 0;
for(int i = 1; i <= n; i++)
max_sum = max(max_sum, w[i]);
out << max_sum;
}