Cod sursa(job #2526056)

Utilizator david.teacaDavid Stefan Teaca david.teaca Data 18 ianuarie 2020 11:17:20
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>
#define DIM 16005
 
using namespace std;
 
ifstream fin  ("asmax.in");
ofstream fout ("asmax.out");
 
int n, a, b, sol;
int 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);
    sol = INT_MIN;
    for (int i=1; i<=n; i++){
        sol = max (sol, d[i]);
    }
    fout << sol;
    return 0;
}