Cod sursa(job #3335463)

Utilizator Warrior.exeZgorcea Mihai-Alexandru Warrior.exe Data 22 ianuarie 2026 18:50:22
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

const int NMAX = 16000;

int val_nod[NMAX+1];
bool vizitat[NMAX+1];
vector<int>Mat_adi[NMAX+1];

int raspuns;
int nr_noduri;



void citire(){
    int a,b;
    fin>>nr_noduri;
    for(int i=1;i<=nr_noduri;i++){
        fin>>val_nod[i];
    }
    for(int i=1;i<nr_noduri;i++){
        fin>>a>>b;
        Mat_adi[a].push_back(b);
        Mat_adi[b].push_back(a);
    }
}

int DFS(int nod){
    int sum = val_nod[nod];
    for(auto copil:Mat_adi[nod]){
        if(vizitat[copil] == false){
            vizitat[copil] = true;
            sum += DFS(copil);
        }
    }
    if(sum>raspuns){
        raspuns = sum;
    }
    if(sum<0){
        sum = 0;
    }
    return sum;
}

void solve(){
    raspuns = val_nod[1];
    vizitat[1] = true;
    DFS(1);
    fout<<raspuns;
}

int main(){
    citire();
    solve();
    return 0;
}