Cod sursa(job #2411689)

Utilizator lucametehauDart Monkey lucametehau Data 21 aprilie 2019 09:16:32
Problema Asmax Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin ("asmax.in");
ofstream cout ("asmax.out");

int n, x, y;

vector <int> g[16005];
int dp[16005];

void dfs(int nod, int t) {
  for(auto i : g[nod]) {
    if(i != t && dp[i] >= 0)
      dp[nod] += dp[i];
  }
}

int main() {
  cin >> n;
  for(int i = 1; i <= n; i++)
    cin >> dp[i];
  for(int i = 1; i < n; i++) {
    cin >> x >> y;
    g[x].push_back(y);
    g[y].push_back(x);
  }
  dfs(1, 0);
  int sol = 0;
  for(int i = 1; i <= n; i++)
    sol = max(sol, dp[i]);
  cout << sol;
  return 0;
}