Cod sursa(job #2550615)

Utilizator mirceaisherebina mircea mirceaishere Data 18 februarie 2020 21:54:04
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");

int n, i, j, d[16010], v[16010], x, y, viz[16010], maxim;
vector <int> a[16010];

void dfs(int nod){
    viz[nod]=1;
    d[nod]=v[nod];
    for(int i=0; i<a[nod].size(); i++){
        int vecin=a[nod][i];
        if(viz[vecin]==0){
            dfs(vecin);
            if(d[vecin]>0){
                d[nod]+=d[vecin];
            }
        }
    }
    maxim=max(maxim, d[nod]);
}

int main(){
    fin>>n;
    maxim=-1000000000;
    for(i=1; i<=n; i++){
        fin>>v[i];
    }
    for(i=1; i<n; i++){
        fin>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    dfs(1);
    fout<<maxim;
}