Cod sursa(job #3366111)

Utilizator novak1snovac luca novak1s Data 29 septembrie 2026 10:07:48
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;
const int nm=16e3+5;
vector<int>L[nm];
int vis[nm];
int dp[nm];
void dfs(int nod){
    vis[nod]=1;
    for(auto it:L[nod]){
        if(!vis[it]){
            dfs(it);
            if(dp[it]>0)dp[nod]+=dp[it];
        }
    }
}
int main()
{
    int n;
    cin >> n;
    for(int i=1;i<=n;i++){
        cin >>dp[i];
    }
    for(int i=1;i<=n-1;i++){
        int x,y;
        cin >> x >> y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
    dfs(1);
    int sol=-1e9;
    for(int i=1;i<=n;i++){
        sol=max(sol,dp[i]);
    }
    cout << sol;
    return 0;
}