Cod sursa(job #2044715)

Utilizator sergiudnyTritean Sergiu sergiudny Data 21 octombrie 2017 12:36:08
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
#define DM 16005
#define pb push_back
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");

vector<int>mch[DM];
int n,a,b,dp[DM],mx;
bitset<DM>viz;

int solve(int nod){
    if(!viz[nod]){
        viz[nod]=1;
        for(auto i:mch[nod]) if(!viz[i])
            dp[nod]=max(dp[nod],dp[nod]+solve(i));
    }
    return dp[nod];
}

int main()
{
    fin>>n;
    for(int i=1;i<=n;++i)
        fin>>dp[i];
    for(int i=1;i<n;++i){
        fin>>a>>b;
        mch[a].pb(b);
        mch[b].pb(a);
    }
    solve(1);
    for(int i=1;i<=n;++i)
        mx=max(dp[i],mx);
    fout<<mx;
    return 0;
}