Cod sursa(job #2450331)

Utilizator bluestorm57Vasile T bluestorm57 Data 22 august 2019 17:19:21
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 16005;
vector <int> v[NMAX];
int n,val[NMAX];
long long summax,sum[NMAX];
bool viz[NMAX];

void dfs(int node){
    sum[node] = val[node];
    viz[node] = 1;
    for(auto it: v[node])
        if(!viz[it]){
            dfs(it);
            if(sum[it] > 0)
                sum[node] += sum[it];
        }
    summax = max(summax, sum[node]);
}

int main(){
    int i,x,y;
    f >> n;
    for(i = 1 ; i <= n ; i++){
        f >> val[i];
        summax = min(summax, (long long)val[i]);
    }
    for(i = 1 ; i < n ; i++){
        f >> x >> y;
        v[x].push_back(y);
        v[y].push_back(x);
    }

    dfs(1);
    g << summax;

    return 0;
}