Cod sursa(job #3137293)

Utilizator mihneauUdroiu Mihnea Alexandru mihneau Data 12 iunie 2023 09:12:49
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
long long ssm[16001],maxim = -2000000000;
bool viz[16001];
int v[16001];
vector <int> mu[16001];
void DFS(int nod, int p)
{
    ssm[nod] = v[nod];
    for(int i = 0; i < mu[nod].size(); i++){
        int vecin = mu[nod][i];
        if(vecin != p){
            DFS(vecin, nod);
            if(ssm[vecin] > 0){
                ssm[nod] += ssm[vecin];
            }
        }
    }
    maxim = max(maxim, ssm[nod]);
}
int main()
{

    ifstream cin("asmax.in");
    ofstream cout("asmax.out");
    int n, i;
    cin >> n;
    for(i = 1; i <= n; i++){
        cin >> v[i];
    }
    for(i = 1; i < n; i++){
        int x, y;
        cin >> x >> y;
        mu[x].push_back(y);
        mu[y].push_back(x);
    }
    DFS(1, 0);
    cout << maxim;
    return 0;
}