Cod sursa(job #2749448)

Utilizator George_CristianGeorge Dan-Cristian George_Cristian Data 6 mai 2021 18:47:30
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <vector>
#include <bitset>
#include <climits>

using namespace std;

ifstream f("asmax.in");
ofstream g("asmax.out");

#define NMAX 16005

int n, val[NMAX];
vector<int> G[NMAX];
bitset<NMAX> viz;

void citire() {
    f >> n;
    for (int i = 1; i <= n; ++i)
        f >> val[i];
    int nod1, nod2;
    for (int i = 1; i < n; ++i) {
        f >> nod1 >> nod2;
        G[nod1].push_back(nod2);
        G[nod2].push_back(nod1);
    }
}

void DFS(int nod) {
    viz[nod] = true;
    for (auto &nod2:G[nod]) {
        if (!viz[nod2]) {
            DFS(nod2);
            if (val[nod2] > 0)
                val[nod] += val[nod2];
        }
    }
}

void afisare() {
    int maxi = INT_MIN;
    for (int i = 1; i <= n; ++i)
        maxi = max(maxi, val[i]);
    g << maxi;
}

int main() {
    citire();
    DFS(1);
    afisare();
    return 0;
}