Cod sursa(job #2954731)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 15 decembrie 2022 10:31:29
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
//https://www.infoarena.ro/problema/asmax
//avansata
//
#include <fstream>
#include <vector>
using namespace std;
ifstream cin ("asmax.in");
ofstream cout("asmax.out");
int i, j, n, m, x, y, nr, minim, k, sol;
bool a[16002];
int maxim[16002], s[16002], v[16002];
vector <int> L[16002];
void dfs(int nod){
    a[nod]=1;
    s[nod]=v[nod];
    for(int i=0;i<L[nod].size();i++){
        if(a[L[nod][i]]==0){
            dfs(L[nod][i]);
            if(s[L[nod][i]]>0)
                s[nod]+=s[L[nod][i]];
        }
    }
   sol=max(sol, s[nod]);
}
int main() {
    cin>>n;
    cin>>v[1];
    sol=v[1];
    for(i=2;i<=n;i++)
        cin>>v[i], sol=max(sol, v[i]);
    for(i=1;i<n;i++){
        cin>>x>>y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
    minim=100002;
    dfs(1);
    cout<<sol;


}