Cod sursa(job #2450318)

Utilizator bluestorm57Vasile T bluestorm57 Data 22 august 2019 17:09:37
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 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,sum[NMAX],val[NMAX],summax,total;
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]);
    //summax = max(summax, total - sum[node]);
}

int main(){
    int i,x,y;
    f >> n;
    for(i = 1 ; i <= n ; i++){
        f >> val[i];
        total += 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;
}