Cod sursa(job #2596478)

Utilizator eugen5092eugen barbulescu eugen5092 Data 9 aprilie 2020 19:11:22
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;
ifstream ci("asmax.in");
ofstream cou("asmax.out");
int val[16005],n;
vector<int>v[16005];

int dp[16005];
int vis[16005];

void citire(){
    int i,a,b;
    ci>>n;
    for(i=1;i<=n;i++){
        ci>>val[i];
    }
    for(i=1;i<=n;i++){
        ci>>a>>b;
        v[b].push_back(a);
        v[a].push_back(b);
    }

}

void init(){
    int i;
    for(i=1;i<=n;i++){
        dp[i]=val[i];
    }
}

void rez(int nod){
    vis[nod]=1;
    for(auto i:v[nod]){
        if(vis[i]==0){
            rez(i);
            if(dp[i]>0){
                dp[nod]+=dp[i];
            }

        }
    }

}

int main()
{
    int mx=-10001;
    citire();
    init();
    rez(1);
    for(int i=1;i<=n;i++){
        mx=max(mx,dp[i]);
    }
    cou<<mx;
    return 0;
}