Cod sursa(job #3332756)

Utilizator Victor5539Tanase Victor Victor5539 Data 9 ianuarie 2026 08:16:29
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <bits/stdc++.h>

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

const int NMAX=16000;
int n,i,v[NMAX+5],node1,node2,sol=-1e9,j;
vector <int> adj[NMAX+5];
bool viz[NMAX+5];

void init()
{
    for (int i=1; i<=n; i++)
        viz[i]=0;

    for (int i=1; i<=n; i++)
        dp[i]=-1e9;
}

void dfs(int node)
{
    viz[node]=1;
    dp[node]=v[node];

    for (auto node2: adj[node])
    {
        if (!viz[node2])
        {
            dfs(node2);

            if (dp[node2]>0)
                dp[node]+=dp[node2];
        }
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(nullptr); fout.tie(nullptr);

    fin>>n;
    for (i=1; i<=n; i++)
        fin>>v[i];

    for (i=1; i<n; i++)
    {
        fin>>node1>>node2;
        adj[node1].push_back(node2);
        adj[node2].push_back(node1);
    }
1
    for (i=1; i<=n; i++)
    {
        init();
        dfs(i);

        for (j=1; j<=n; j++)
            sol=max(sol,dp[j]);
    }

    fout<<sol;
    return 0;
}