Cod sursa(job #3140354)

Utilizator SSKMFSS KMF SSKMF Data 5 iulie 2023 17:47:02
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;

ifstream cin ("asmax.in");
ofstream cout ("asmax.out");

int suma[16001] , suma_maxima = -2e9;
vector <int> fii[16001];
bitset <16001> vizitat;

void Parcurgere (int nod_actual)
{
    vizitat[nod_actual] = 1;
    for (auto fiu : fii[nod_actual]) 
        if (!vizitat[fiu])
            Parcurgere(fiu) , suma[nod_actual] += max(0 , suma[fiu]);

    suma_maxima = max(suma_maxima , suma[nod_actual]);
}

int main ()
{
    int noduri;
    cin >> noduri;

    for (int indice = 1 ; indice <= noduri ; indice++)
        cin >> suma[indice];

    for (int indice = 1 , nod[2] ; indice < noduri ; indice++)
    {
        cin >> nod[0] >> nod[1];
        fii[nod[0]].push_back(nod[1]);
        fii[nod[1]].push_back(nod[0]);
    }

    Parcurgere(1);
    cout << suma_maxima;
    cout.close(); cin.close();
    return 0;
}