Cod sursa(job #2823254)

Utilizator bananamandaoneTudor Cosmin Oanea bananamandaone Data 27 decembrie 2021 18:53:50
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, m;
vector<int> pret(16003);
vector<int> h[16003];
vector<int> sol(16003);
vector<int> viz(16003);

void dfs(int nod)
{
    viz[nod] = 1;
    sol[nod] = pret[nod];

    for(auto v : h[nod])
        if(!viz[v])
        {
            dfs(v);
            if(sol[v] > 0)
                sol[nod] += sol[v];
        }
}

int main()
{
    int x, y, mx;
    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> pret[i];

    for(int i = 1; i <= n; i++)
    {
        fin >> x >> y;
        h[x].push_back(y);
        h[y].push_back(x);
    }

    dfs(1);

    mx = -1001;
    for(int i = 1; i <= n; i++)
        mx = max(mx, sol[i]);
    fout << mx << " ";

    fin.close();
    fout.close();
    return 0;
}