Cod sursa(job #2044710)

Utilizator TherevengerkingSurani Adrian Therevengerking Data 21 octombrie 2017 12:33:52
Problema Asmax Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
const int Nmax = 16000 + 5;
int n, a[Nmax], smax;
#define pb push_back
vector<int> v[Nmax];
bool viz[Nmax];
int dfs(int nod)
{
    int ssm = a[nod];
    viz[nod] = 1;
    for(auto i : v[nod])
    {
        if(viz[i] == 1)continue;
        int sact = dfs(i);
        if(sact >= 0)
            ssm += sact;
    }
    return ssm;
}
int main()
{
    fin >> n;
    for(int i = 1; i <= n; ++i)fin >> a[i];

    for(int i = 1, x , y; i < n; ++i)
    {
        fin >> x >> y;
        v[x].pb(y);
        v[y].pb(x);
    }
    fout << dfs(1);
    return 0;
}