Cod sursa(job #2955317)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 16 decembrie 2022 18:43:58
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <vector>

using namespace std;

int v[16010], D[16010], sol;
bool viz[16010];
vector<int>L[16010];

void dfs(int nod){
    viz[nod]=true;
    D[nod]=v[nod];
    for (auto vec:L[nod]){
        if (!viz[vec]){
            dfs(vec);
            if (D[vec]>0){
                D[nod]+=D[vec];
            }
        }
    }
    sol=max(sol, D[nod]);
}
int n,x,y;
int main() {
    ifstream fin("asmax.in");
    ofstream fout("asmax.out");
    fin>>n;
    sol=-1e9;
    for (int i=1;i<=n;i++){
        fin>>v[i];
        sol=max(sol, v[i]);
    }
    for (int i=1;i<n;i++){
        fin>>x>>y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
    dfs(1);
    fout<<sol;
    return 0;
}