Cod sursa(job #2947130)

Utilizator Chiri_Robert Chiributa Chiri_ Data 25 noiembrie 2022 19:04:01
Problema Asmax Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("asmax.in");
ofstream fout("asmax.out");

int n;
int v[16001];
int root;

vector<int> m[16001];
bool viz[16001];

void calc(int i, int j) {
    for (int k : m[i]) {
        if (v[k] > 0 && k != j) {
            v[i] += v[k];
        }
    }

    for (int k : m[i]) {
        if (!viz[k]) {
            viz[k] = 1;
            calc(k, i);
        }
    }
}

int main() {
    fin >> n;
    root = n * (n + 1) / 2;
    for (int i = 1; i <= n; i++) {
        fin >> v[i];
    }
    int x, y;
    for (int i = 0; i < n - 1; i++) {
        fin >> x >> y;
        m[x].push_back(y);
        m[y].push_back(x);
    }

    viz[1] = 1;
    calc(1, 0);

    int smax = v[1];
    for (int i = 2; i <= n; i++) {
        smax = max(smax, v[i]);
    }
    fout << smax;
}