Cod sursa(job #2525270)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 16 ianuarie 2020 23:11:30
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
#define DIM 16005

using namespace std;

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

long long n, a, b, sol;
long long c[DIM], d[DIM], f[DIM];

vector <int> L[DIM];

void dfs (int nod){
    int vecin;
    f[nod] = 1;
    for (int i=0; i<L[nod].size(); i++){
        vecin = L[nod][i];
        if (f[vecin] == 0){
            dfs (vecin);
            d[nod] = max (d[nod], d[nod] + d[vecin]);
        }
    }
}

int main(){
    fin >> n;
    for (int i=1; i<=n; i++){
        fin >> d[i];
    }
    for (int i=1; i<=n-1; i++){
        fin >> a >> b;
        L[a].push_back (b);
        L[b].push_back (a);
    }
    dfs (1);
    for (int i=1; i<=n; i++){
        sol = max (sol, d[i]);
    }
    fout << sol;
    return 0;
}