Cod sursa(job #2869126)

Utilizator NeganAlex Mihalcea Negan Data 11 martie 2022 12:40:23
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

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

int n;
int val[100010], dp[16010], f[16010];
vector<int>v[16010];

void DFS(int nod)
{
    dp[nod]= val[nod];
    for(auto x : v[nod])
    {
        DFS(x);
        if(dp[x] > 0)
            dp[nod] += dp[x];
    }
}

int main()
{
    int i, j, x, y, rad, maxim = -1000;
    fin >> n;
    for(i = 1;i <= n;i++)
        fin >> val[i];
    for(i = 1;i < n;i++)
    {
        fin >> x >> y;
        v[x].push_back(y);
        f[y]++;
    }
    for(i = 1;i <= n;i++)
        if(f[i] == 0)
            rad = i;
    DFS(rad);
    for(i = 1;i <= n;i++)
        maxim = max(dp[i], maxim);
    fout << maxim;

    return 0;
}