Cod sursa(job #2460051)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 22 septembrie 2019 16:21:12
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;
#define NMAX 16003
ifstream fin ("asmax.in");
ofstream fout ("asmax.out");
int V [NMAX], ans = -INT_MAX;
int a, b, N;
vector <int> graf [NMAX];
void dfs (int nod, int tata){
    for (auto fiu : graf [nod]){
        if (fiu != tata){
            dfs (fiu, nod);
            V [nod] += max (0, V [fiu]);
        }
    }
    ans = max (ans, V [nod]);
}
int main (){
    fin >> N;
    for (int i = 1; i <= N; i ++)
        fin >> V [i];
    for (int i = 1; i < N; i ++){
        fin >> a >> b;
        graf [a].push_back (b);
        graf [b].push_back (a);
    }
    dfs (1, -1);
    fout << ans;
    return 0;
}