Cod sursa(job #2439034)

Utilizator dragos.ionita2303Ionita Dragos dragos.ionita2303 Data 14 iulie 2019 17:41:53
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
using namespace std;
#define NMAX 16005
ifstream cin("asmax.in");
ofstream cout("asmax.out");

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

void dfs(int nod) {
    viz[nod] = 1;
    for (int i = 0; i < arb[nod].size(); i++) {
        if (viz[arb[nod][i]] == 0) {
            dfs(arb[nod][i]);
            if (val[arb[nod][i]] > 0) {
                val[nod] += val[arb[nod][i]];
            }
        }
    }
}

int main()
{
    cin>>n;
    int maxim = INT_MIN;
    for (int i = 1; i <= n; i++) {
        cin>>val[i];
    }
    for (int i = 1; i <= n - 1; i++) {
        int x, y;
        cin>>x>>y;
        arb[x].push_back(y);
        arb[y].push_back(x);
    }
    dfs(1);
    for (int i = 1; i <= n; i++) {
        if (val[i] > maxim) {
            maxim = val[i];
        }
    }
    cout<<maxim;
    return 0;
}