Cod sursa(job #2138748)

Utilizator luanastLuana Strimbeanu luanast Data 21 februarie 2018 20:58:17
Problema Asmax Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("asmax.in");
ofstream fout ("asmax.out");
vector <int> L[16010];
int f[16010],viz[16010],s,c[16010],k,n,i,x,y,nod,D[16010],sol[16010],t;
void dfs(int nod){
    viz[nod]=1;
    for(int i=0;i<L[nod].size();i++){
        int nodv=L[nod][i];
        if(viz[nodv]!=1){
            dfs(nodv);
            if(D[nod]+D[nodv]>D[nod]){
                D[nod]+=D[nodv];
                ++k;
            }
        }
    }
}

int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>D[i];
    }
    for(i=1;i<n;i++){
        fin>>x>>y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
    dfs(1);
    fout<<k+1;
}