Cod sursa(job #2539295)

Utilizator CosminMorarMorar Cosmin Andrei CosminMorar Data 5 februarie 2020 19:45:02
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <bitset>
#include <vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n, maxx = -2000000000;
int v[16001];
bitset<16001> f;
vector<int> nod[16001];

void readAndSet() {
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> v[i];
    for (int i = 1; i < n; i++) {
        int a, b;
        fin >> a >> b;
        nod[a].push_back(b);
        nod[b].push_back(a);
    }
}

void dfs(int i) {
    for (int j : nod[i])
        if (!f[j]) {
            f[j] = true;
            dfs(j);
            v[i] = max(v[i], v[i] + v[j]);
        }
    maxx = max(maxx, v[i]);
}

int main() {
    readAndSet();
    f[1] = true;
    dfs(1);
    fout << maxx;
    return 0;
}