Cod sursa(job #2856872)

Utilizator World_shifterMurgu Bogdan World_shifter Data 24 februarie 2022 14:57:15
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <vector>

using namespace std;

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

vector< vector<int> > muchii;
int n,viz[16000],val[16000],suma[16000],maxim=-1e9;

void citire(){
    in>>n;
    muchii.resize(n);
    for(int i=0; i<n; i++){
        in>>val[i];
        maxim=max(maxim,val[i]);
    }
    int a,b;
    while(in>>a>>b){
        a--;b--;
        muchii[a].push_back(b);
        muchii[b].push_back(a);
    }
}

void dfs(int x){
    viz[x]=true;
    suma[x]=val[x];
    for(auto y:muchii[x]){
        if(!viz[y]){
            dfs(y);
            if(suma[y]>0){
                suma[x]+=suma[y];
            }
        }
    }
}

int main()
{
    citire();
    dfs(0);
    for(int i=0; i<n; i++){
        if(suma[i]>maxim){
            maxim=suma[i];
        }
    }
    out<<maxim;
    return 0;
}