Cod sursa(job #2905206)

Utilizator EmiHHodoroaba Emanuel EmiH Data 20 mai 2022 10:45:37
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
int maxim =-10000;

class Nod{
    public:
    int value;
    bool viz = false;
    vector<Nod*> muchii;
    Nod(int v){
        value = v;
    }
    int parcurge(){
        viz = true;
        int sum = value;
        int sub =0;
        for(auto& it : muchii){
            if(!it->viz){
                sub = it->parcurge();
                if(sub > 0){
                    sum +=sub;
                }
            }
        }
        maxim = max(maxim,sum);
        return sum;
    }
};
int main(){
    ifstream in("asmax.in");
    ofstream out("asmax.out");
    int n,x,s,d;
    vector<Nod> graf;
    in >> n;
    for(int i=0;i<n;i++){
        in >> x;
        graf.push_back(Nod(x));
    }
    for(int i=1;i<n;i++){
        in >> s >> d;
        graf[s-1].muchii.push_back(&graf[d-1]);
        graf[d-1].muchii.push_back(&graf[s-1]);
    }
    graf[0].parcurge();
    out << maxim;
    return 0;
}