Pagini recente » Cod sursa (job #1899323) | Cod sursa (job #473835) | Cod sursa (job #1839794) | Rating Berke Musellim (bigboiberke) | Cod sursa (job #1899319)
#include <bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(0);
#define tie cin.tie(0);
#define mp make_pair
#define ll long long
#define PII pair<int, int>
#define PLL pair<ll, ll>
#define inf 1000000000
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
int n, x, y, dp[100100], maxx = -1e9;
vector < int > V[100100];
bool viz[100100];
int dfs(int x)
{
viz[x] = 1;
for (auto it : V[x])
if (!viz[it])
{
dfs(it);
if (dp[x] + dp[it] > dp[x]) dp[x] += dp[it];
maxx = max(maxx, dp[x]);
}
return dp[x];
}
int main(){
IOS tie
ifstream cin("sate.in");
ofstream cout("sate.out");
cin >> n;
for (int i = 1; i <= n; i++) cin >> dp[i];
for (int i = 1; i < n; i++)
{
cin >> x >> y;
V[x].push_back(y);
V[y].push_back(x);
}
dfs(1);
cout << maxx;
cerr << "Fucking time elapsed: " << clock() * 1000.0 / CLOCKS_PER_SEC << " ms" << '\n';
return 0;
}