Cod sursa(job #2331515)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 29 ianuarie 2019 17:37:18
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <vector>

using namespace std;

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

int N, val[16005];
vector <int> g[16005];

void DFS(int node, int dad)
{
    for(auto it : g[node])
        if(it != dad)
        {
            DFS(it, node);

            if(val[it] >= 0)
                val[node] += val[it];
        }
}

int main()
{
    fin >> N;

    for(int i = 1; i <= N; i++)
        fin >> val[i];

    int x, y;
    while(fin >> x >> y)
        {
            g[x].push_back(y);
            g[y].push_back(x);
        }

    DFS(1, 0);

    int ans = val[1];
    for(int i = 2; i <= N; i++)
        ans = max(ans, val[i]);

    fout << ans << '\n';

    return 0;
}