Cod sursa(job #2830646)

Utilizator lalalaura_022Udroiu Laura-Ioana lalalaura_022 Data 10 ianuarie 2022 08:46:09
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

using namespace std;

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

int n;
vector<int> v[16001], suma, val;
vector<bool> vizitat;

void citire()
{
    int i;
    for(i = 0; i <= 16001; i++)
        {
            suma.push_back(0);
            vizitat.push_back(0);
        }
    int  nod1, nod2, x;
    f>>n;
    for(i = 0; i < n; i++)
        {
            f>>x;
            val.push_back(x);
        }
    for(i = 0; i < n; i++)
    {
        f>>nod1>>nod2;
        v[nod1].push_back(nod2);
        v[nod2].push_back(nod1);
    }

}

void dfs(int nod)
{
    vizitat[nod] = 1;
    suma[nod] = val[1];

    for(auto i: v[nod])
    {
        if(!vizitat[i])
        {
            dfs(nod);
            if(suma[nod] < suma[nod] + suma[i])
            suma[nod] = suma[nod] + suma[i];
        }
    }
}

int main()
{
    int s = -16000, i;
    citire();
    dfs(1);
    for(i = 0; i < n; i++)
        if(suma[i] > s)
            s = suma[i];
    cout<<s;

    return 0;
}