Cod sursa(job #3221147)

Utilizator daria_staminStamin Daria Alexandra daria_stamin Data 6 aprilie 2024 08:24:33
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector <vector<int>> graf;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int vis[16000];
float val[16000];
void dfs(int nod){
    vis[nod]=true;
    for(int i=0;i<graf[nod].size();i++){
        int vec= graf[nod][i];
            if(!vis[vec]){
                dfs(vec);

            if(val[vec]>0)
                val[nod]=val[nod]+val[vec];
        }
    }
}

int main(){
    int n;
    fin>>n;
    graf.resize(n+1);

    int minim,sum=0;
    for(int i=1;i<=n;i++){
        fin>>val[i];
        sum+=val[i];
    }

    for(int i=1;i<=n-1;i++){
        int a,b;
        fin>>a>>b;
        graf[a].push_back(b);
        graf[b].push_back(a);
    }
    dfs(1);

    minim=val[1];
    for(int i=1;i<=n;i++){
       if(val[i]>minim)
       minim=val[i];
    }
    fout<<minim;

    return 0;
}