Cod sursa(job #3219156)

Utilizator NRGrbStoica Robert NRGrb Data 30 martie 2024 11:45:01
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");

vector<vector<int>>G;

bool viz[16005];
int val[16005], maxx=-999999;

int DFS(int nod){
    viz[nod]=true;
    for(int vec:G[nod]){
        if(!viz[vec]){
            DFS(vec);
            if(val[vec]>0)
                val[nod]+=val[vec];
        }
    if(val[nod]>maxx)
        maxx=val[nod];
    }

    return maxx;
}

int main()
{   int n;
    fin>>n;
    G.resize(n+1);
    for(int i=1; i<=n; i++)
        fin>>val[i];
    for(int i=1; i<=n-1; i++){
        int x, y;
        fin>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }

    fout << DFS(1);

    return 0;
}