Cod sursa(job #2955311)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 16 decembrie 2022 18:42:24
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.66 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;
    for (int i=1;i<=n;i++){
        fin>>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;
}