Cod sursa(job #2373505)

Utilizator Moise_AndreiMoise Andrei Moise_Andrei Data 7 martie 2019 13:50:47
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("asmax.in");
ofstream out("asmax.out");
vector <int> v[16005];
int dp[16005], mx;
int n;
void citire()
{
    in >> n;
    for(int i = 1; i <= n; i ++)
        in >> dp[i];
    for(int i = 1; i < n; i++)
    {
        int a, b;
        in >> a >> b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
}

void dfs(int nod, int tata)
{
    for(int i = 0; i < v[nod].size(); i ++)
    {
        int nnod = v[nod][i];
        if(nnod != tata)
        {
            dfs(nnod, nod);
            if(dp[nnod] > 0)
                dp[nod] += dp[nnod];
        }
    }
    mx = max(mx, dp[nod]);
}

int main()
{
    citire();
    dfs(1, 0);
    out << mx;
    return 0;
}