Cod sursa(job #3156738)

Utilizator antonio_sefu_tauLaslau Antonio antonio_sefu_tau Data 12 octombrie 2023 20:17:13
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const int dim=16005;
int n,a[dim],mx[dim];
bool viz[dim];
vector<int> G[dim];
void dfs(int nod){
    viz[nod]=1;
    mx[nod]=a[nod];
    for(auto x:G[nod]){
        if(!viz[x]){
            dfs(x);
            if(mx[x]>0){
                mx[nod]+=mx[x];
            }
        }
    }
}
int main (){
    ifstream f("asmax.in");
    ofstream g("asmax.out");
    f>>n;
    for(int i=1;i<=n;i++){
        f>>a[i];
    }
    for(int i=1;i<n;i++){
        int x,y;
        f>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    dfs(1);
    int sol=0;
    for(int i=1;i<=n;i++){
        sol=max(sol,mx[i]);
    }
    g<<sol;
    return 0;
}