Cod sursa(job #2831089)

Utilizator TDV24Tont Dragos-Valentin TDV24 Data 10 ianuarie 2022 20:28:24
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

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

vector<vector<int>> lista;
bool vizitat[16001];
int costuri[16001];
int sume[16001];

void dfs(int x)
{
    vizitat[x] = 1;
    sume[x] = costuri[x];
    for(auto i: lista[x])
    {
        if(!vizitat[i])
        {
            dfs(i);
            if(sume[x] + sume[i] > sume[x])
                sume[x] = sume[x] + sume[i];
        }
    }
}

int main()
{
    int N, rez = -10000000, a, b;
    f >> N;
    for(int i = 1; i <= N; i++)
        f >> costuri[i];
    lista.resize(N + 1);
    for(int i = 1; i < N; i++)
        {
            f >> a >> b;
            lista[a].push_back(b);
            lista[b].push_back(a);
        }
    dfs(1);
    for(int i = 1; i <= N; i++)
        if(sume[i] > rez)
            rez = sume[i];
    g << rez ;
    return 0;
}