Cod sursa(job #2009061)

Utilizator lflorin29Florin Laiu lflorin29 Data 8 august 2017 15:26:09
Problema Asmax Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>

using namespace std;

const int N=16003;
int n,v[N],best[N],sol=-1e9;
vector<int>g[N];
void dfs(int nod,int father) {
  best[nod]=v[nod];
  for(auto it:g[nod]) {
    if(it!=father) {
      dfs(it,nod);
      best[nod]+=max(0,best[it]);
    }
  }
  sol = max(sol, best[nod]);
}

int main() {
  ifstream cin("asmax.in");
  ofstream cout("asmax.out");
  cin>>n;
  for(int i=1; i<=n; ++i)cin>>v[i];
  for(int i=1; i<=n; ++i) {
    int a,b;
    cin>>a>>b;
    g[a].push_back(b);
    g[b].push_back(a);
  }
  dfs(1,0);
  cout<<sol;


}