Cod sursa(job #2672622)

Utilizator SoranaAureliaCatrina Sorana SoranaAurelia Data 14 noiembrie 2020 12:08:14
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <vector>
#include <climits>
#define NMAX 16005
using namespace std;

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


vector<int>graph[NMAX];
int val[NMAX];
int n;

void citire(){
    f>>n;
    for(int i=1; i<=n; i++)
    {
        f>>val[i];
    }
    for(int i=1; i<n; i++){
        int a, b;
        f>>a>>b;
        graph[a].push_back(b);
        graph[b].push_back(a);
    }
}

int smax = INT_MIN;
int viz[NMAX];

int sum(int nod){
    int sm = val[nod];
    for(auto &v:graph[nod])
        if(viz[nod] == 0){
            viz[nod] = 1;
            sm = max(sm, sm+sum(v));
            viz[nod] = 0;
        }
    if(sm>smax)
        smax = sm;
    return sm;
}
int main()
{
    citire();
    g<<sum(1);
    return 0;
}