Cod sursa(job #3159089)

Utilizator VladPislaruPislaru Vlad Rares VladPislaru Data 20 octombrie 2023 17:48:33
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

int n;
int val[16005];
vector<int> adj[16005];

int ans = -2e9;

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

void DFS(int nod, int parent) {
    for (int i : adj[nod])
        if(i != parent) {
            DFS(i, nod);
            if (val[i] > 0)
                val[nod] += val[i];
        }
    ans = max(ans, val[nod]);
}


int main()
{
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> val[i];
    for (int i = 1; i < n; i++) {
        int x, y;
        fin >> x >> y;
        adj[x].push_back(y);
        adj[y].push_back(x);
    }
    DFS(1, 0);
    fout << ans << "\n";
    return 0;
}