Cod sursa(job #3332764)

Utilizator alexdraguAlexandru Dragu alexdragu Data 9 ianuarie 2026 08:33:56
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("asmax.in");
ofstream cout("asmax.out");
int g[16005],dp[16005],sol,i,n,x,y;
vector<int> v[16005];
bool viz[16005];
void dfs(int nod)
{
    viz[nod]=1;
    dp[nod]=g[nod];
    for(auto x:v[nod])
    {
        if(viz[x]==0)
        {
            dfs(x);
            if(dp[x]>0) dp[nod]+=dp[x];
        }
    }
    sol=max(sol,dp[nod]);
}
int main()
{
    cin>>n;
    for(i=1; i<=n; i++)
    {
        cin>>g[i];
        if(i==1) sol=g[i];
        else sol=max(sol,g[i]);
    }
    for(i=1; i<n; i++)
    {
        cin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1);
    cout<<sol;
    return 0;
}