Nu aveti permisiuni pentru a descarca fisierul grader_test2.ok
Cod sursa(job #3347724)
| Utilizator | Data | 18 martie 2026 01:55:07 | |
|---|---|---|---|
| Problema | Asmax | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.75 kb |
#include <bits/stdc++.h>
using namespace std;
typedef long long i8;
vector<vector<int>> gf;
vector<i8> vla;
vector<int> vst;
void dfs(int n) {
vst[n] = true;
for (auto e : gf[n]) {
if (!vst[e]) {
dfs(e);
if (vla[e] > 0) {
vla[n] += vla[e];
}
}
}
}
int main() {
ifstream cin("asmax.in");
ofstream cout("asmax.out");
int n;
cin >> n;
vla.resize(n + 1);
vst.resize(n + 1);
for (int i = 1; i <= n; i++) {
cin >> vla[i];
vst[i] = false;
}
gf.resize(n + 1);
for (int i = 0; i < n - 1; i++) {
int a, b;
cin >> a >> b;
gf[a].push_back(b);
gf[b].push_back(a);
}
dfs(1);
int res = LLONG_MIN;
for (int i = 1; i <= n; i++) {
res = max(vla[e], res);
}
cout << res << "\n";
}