Cod sursa(job #2312003)

Utilizator maria15Maria Dinca maria15 Data 3 ianuarie 2019 23:13:11
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <vector>

using namespace std;

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

int n, x[16001], a, b, i, maxim, s[16001];
vector<int> v[16001];

void dfs(int nod, int tata){
    s[nod] = x[nod];
    for(int j = 0;j<v[nod].size();j++){
        int crt = v[nod][j];
        if(crt != tata){
            dfs(crt, nod);
            if(s[crt] > 0)
                s[nod] += s[crt];
        }
    }
}

int main(){
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>x[i];
    for(i=1;i<n;i++){
        fin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    dfs(1, 0);
    for(i=1;i<=n;i++)
        if(s[i] > maxim)
            maxim = s[i];
    fout<<maxim;
    return 0;
}