Cod sursa(job #2990835)

Utilizator TODEToderita Mihai TODE Data 8 martie 2023 17:03:44
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream in("asmax.in");
ofstream out("asmax.out");
const int N = 16000 , INF_NEG = (-1) * 1e9;
int n , arr[N + 1] , visited[N + 1] , scor[N + 1];
vector<int> v[N + 1];
void asmax(int x){
    visited[x] = true;
    scor[x] = arr[x];
    for(int y = 0 ; y < v[x].size() ; y++){
        int j = v[x][y];
        if(!visited[j]){
            asmax(j);
            if(scor[j] > 0){
                scor[x] += scor[j];
            }
        }
    }
}
int main(){
    in >> n;
    for(int i = 1 ; i <= n ; i++){
        in >> arr[i];
    }
    int x , y;
    while(in >> x >> y){
        v[x].push_back(y);
        v[y].push_back(x);
    }
    int maxi = INF_NEG;
    asmax(1);
    for(int i = 1 ; i <= n ; i++){
        maxi = max(maxi , scor[i]);
    }
    out << maxi;
}