Cod sursa(job #3202226)

Utilizator oana75Ioana Prunaru oana75 Data 11 februarie 2024 10:22:23
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <vector>

using namespace std;
const int NMAX = 16001;

ifstream f("asmax.in");
ofstream g("asmax.out");

int v[NMAX], summax[NMAX], N, sol;
vector<int> L[NMAX];

void citire()
{
    int x, y;
    f >> N;
    for (int i = 1; i <= N; i++)
        f >> v[i];
    for (int i = 1; i <= N - 1; i++)
    {
        f >> x >> y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
}

void DFS(int nod, int tata)
{
    summax[nod] = v[nod];
    for(int i : L[nod])
        if(i != tata)
        {
            DFS(i, nod);
            if(summax[i] > 0)
                summax[nod] += summax[i];
        }
}

int main()
{
    citire();
    DFS(1, 0);
    for (int i = 1; i <= N; i++)
        sol = max(summax[i], sol);
    g << sol;
    f.close();
    g.close();
    return 0;
}