Cod sursa(job #2907896)

Utilizator Costin_PintilieHoratiu-Costin-Petru Pintilie Costin_Pintilie Data 31 mai 2022 21:17:48
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>

using namespace std;

int node_nbr,x,y;
vector<int> node_values;
vector<vector<int>> adj;
vector<int> costs;
vector<bool> visited;

void res(int node){
    costs[node] = node_values[node];
    visited[node] = 1;

    for(auto next_node: adj[node]){
        if(!visited[next_node]){
            res(next_node);
            if(costs[node] + costs[next_node] > costs[node]){
                costs[node] += costs[next_node];
            }
        }
    }
}

int main()
{
    ifstream fin("asmax.in");
    fin>>node_nbr;
    node_values.resize(node_nbr + 1);
    costs.resize(node_nbr + 1);
    visited.resize(node_nbr + 1);
    adj.resize(node_nbr + 1);

    for(int i = 1; i <= node_nbr; i++){
        fin>>x;
        node_values[i] = x;
    }

    for(int i = 1; i <= node_nbr; i++){
        fin>>x>>y;
        adj[x].push_back(y);
        adj[y].push_back(x);
    }
    fin.close();

    res(1);

    ofstream fout("asmax.out");
    fout<<*max_element(costs.begin(),costs.end());
    fout.close();




    return 0;
}