Cod sursa(job #2835317)

Utilizator Ciprian089Cirstea Ciprian Ciprian089 Data 18 ianuarie 2022 15:08:00
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<fstream>
#include<vector>
#include<climits>
using namespace std;

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

vector<int> G[16005];

int N , x, y, nod , maxim = INT_MIN;

bool v[16005];
int s[16005];
int c[16005];
void dfs(int nod){
    
    v[nod] = true;
    s[nod] = c[nod];
    for(auto i: G[nod]){
        if(!v[i]){
            dfs(i);
            if(s[i] + s[nod] > s[nod]){
                s[nod] = s[i] + s[nod];
            }
        }
    }
    
}

int main(){
    
    fin >> N;
    for(int i = 1; i <= N; i++){
        fin >> c[i];
    }
    for(int i = 1;  i < N; i++){
        fin >> x >> y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    
    dfs(1);
    
    for(int i = 1; i <= N; i++){
        if(s[i] > maxim)
            maxim = s[i];
    }
    
    fout << maxim;
    return 0;
}