Cod sursa(job #2838869)

Utilizator ValiAntonieAntonie Valentin ValiAntonie Data 24 ianuarie 2022 20:21:47
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("asmax.in");
ofstream fout("asmax.out");

int i,val[16005],dp[16005],n,mark[16005],vecin,Max;
vector <int> v[16005];

void DFS(int nod){
    mark[nod] = 1;
    for(int i=0;i<v[nod].size();i++){
        int vecin = v[nod][i];
        if(!mark[vecin]){
            DFS(vecin);
            dp[nod] += max(0,dp[vecin]);
        }
    }
}



int main()
{
fin>>n;
for(i=1;i<=n;i++){
    fin>>val[i];
    dp[i] = val[i];
}
int a,b;
for(i=1;i<=n-1;i++){
    fin>>a>>b;
    v[a].push_back(b);
    v[b].push_back(a);
}
DFS(1);
for(i=1;i<=n;i++){
    Max = max(Max,dp[i]);
}
fout << Max;

    return 0;
}