Cod sursa(job #3311778)

Utilizator mihaigeorgescuGeorgescu Mihai mihaigeorgescu Data 24 septembrie 2025 10:34:25
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <vector>
#define int long long
using namespace std;
ifstream fcin("asmax.in");
ofstream fout("asmax.out");
int n,val[20000],a,b,dp[20000],rez;
vector <int> v[20000];
inline void dfs(int nod, int p)
{
    dp[nod]=val[nod];
    for(int i : v[nod]) if(i!=p)
    {
        dfs(i,nod);
        if(dp[i]>0)
            dp[nod]+=dp[i];
    }
    rez=max(rez,dp[nod]);
}
signed main()
{
    fcin>>n;
    for(int i=1; i<=n; i++)
        fcin>>val[i];
    for(int i=1; i<n; i++)
    {
        fcin>>a>>b;
        v[a].emplace_back(b);
        v[b].emplace_back(a);
    }
    dfs(1,-1);
    fout<<rez;
    return 0;
}