Cod sursa(job #3151804)

Utilizator iusty64Iustin Epanu iusty64 Data 22 septembrie 2023 21:29:02
Problema Asmax Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
int const Lmax = 16001;
vector<int> v[Lmax];
int n, val[Lmax], suma_max[Lmax];

void smax(int node, int father){
    suma_max[node]=val[node];
    for(int fiu : v[node]){
        if(fiu != father){
            smax(fiu, node);
            if(fiu>0)
                suma_max[node]+=val[fiu];
        }
    }
}

int main()
{
    ifstream fin("asmax.in");
    ofstream fout("asmax.out");
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>val[i];
    for(int i=1;i<=n;i++){
        int x, y;
        fin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    smax(1, 0);
    int maxim = INT_MIN;
    for(int k=1;k<=n;k++)
        maxim = max(maxim, suma_max[k]);
    fout<<maxim;
    return 0;
}