Cod sursa(job #3347725)

Utilizator hrib_the_slothAndreea Pasca hrib_the_sloth Data 18 martie 2026 01:55:28
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[i], res);
  }
  cout << res << "\n";
}