Cod sursa(job #2835541)

Utilizator LukyenDracea Lucian Lukyen Data 18 ianuarie 2022 20:44:08
Problema Asmax Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

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

int nr_noduri, nr_muchii, start;
int visited[20000], val[20000];

vector<vector<int>> graf;

int dfs(int nod)
{
    if (visited[nod])
        return 0;

    visited[nod] = 1;
    int sum = val[nod];
    int temp;
    for (int next : graf[nod])
    {
        temp = dfs(next);
        if (temp > 0)
            sum += temp;
    }
    return sum;
}

int main()
{
    fin >> nr_noduri;
    graf.resize(nr_noduri + 1);
    for (int i = 1; i <= nr_noduri; i++)
        fin >> val[i];

    int n1, n2;
    while (fin >> n1 >> n2)
    {
        graf[n1].push_back(n2);
        graf[n2].push_back(n1);
    }
    fout << dfs(1);

    return 0;
}