Cod sursa(job #3230493)

Utilizator DennisJasonOgnean Dennis DennisJason Data 21 mai 2024 19:26:13
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
#define NMAX 100001
#define MAX 1001
#define pb push_back
#define eb emplace_back
#define MOD 1000000007
#define nl '\n'
#define INF 0x3f3f3f3f
#define pii pair<int,int>
#define tpl tuple<int,int,int>
#pragma GCC optimize("O3")
#define int long long
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n,k;
vector<vector<int>>G(NMAX);
bool vis[NMAX];
int nivel[NMAX],val[NMAX],dp[NMAX];
void dfs(int node)
{
   vis[node]=1;
   for(auto x:G[node])
   {
       if(!vis[x])
       {
           dfs(x);
           dp[node]+=max((int)0,dp[x]);
       }
   }
}
signed main() {

    fin>>n;
    for(int i=1;i<=n;++i)
    {
        fin>>val[i];
        dp[i]=val[i];
    }
    for(int i=1;i<n;++i)
    {
        int x,y;
        fin>>x>>y;
        G[x].pb(y);
        G[y].pb(x);
    }
    dfs(1);
    int ans=0;
    for(int i=1;i<=n;++i)
    {
       ans=max(ans,dp[i]);
    }
    fout<<ans;








    return 0;
}