Cod sursa(job #3205785)

Utilizator Toni07Stoica Victor Toni07 Data 20 februarie 2024 14:54:53
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
using namespace std;
const int nmax=16005;
vector<int> L[nmax];
int val[nmax], sum[nmax], n, x, y;
void calc(int node, int father){
    sum[node]=val[node];
    for (int son : L[node]){
        if (son!=father){
            calc(son,node);
            if (sum[son]>0)
                sum[node]+=sum[son];
        }
    }
}
int main()
{
    ifstream fin ("asmax.in");
    ofstream fout ("asmax.out");
    fin >> n;
    for (int i=1;i<=n;++i) fin >> val[i];
    for (int i=1;i<n;++i){
        fin >> x >> y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
    calc(1,0);
    int sol=INT_MIN;
    for (int i=1;i<=n;++i) sol=max(sol,sum[i]);
    fout << sol;
    return 0;
}