Cod sursa(job #2703677)

Utilizator NeacsuMihaiNeacsu Mihai NeacsuMihai Data 8 februarie 2021 23:14:16
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

vector<int> v[16001];
int s[16001];
bool viz[16001];
int reztotal = - 1001;

void DFS(int nod){

    viz[nod] = 1;

    for(int i=0; i < v[nod].size(); i++){
        int x = v[nod][i];
        if(!viz[x]){
            DFS(x);

            if(s[x] > 0){
                s[nod] += s[x];
            }
        }
    }

    reztotal = max(reztotal, s[nod]);
}

int main()
{
    int n, x, y;
    fin>>n;

    for(int i=1; i<=n; i++){
        fin>>s[i];
    }
    for(int i=1; i<n; i++){
        fin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }

    DFS(1);

    fout<<reztotal;
}