Cod sursa(job #1841047)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 5 ianuarie 2017 11:26:05
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
vector<int >L[16005];
int D[16005],v[16005],sol[16005];
int x,y,n,m,a,b,q,i;
void dfs(int nod){
    sol[nod]=1;
    for(int i=0;i<L[nod].size();i++){
        int fiu=L[nod][i];
        if(sol[fiu]==0){
            sol[fiu]=1;
            dfs(fiu);
        }
    }
    for(int i=0;i<L[nod].size();i++){
        int fiu=L[nod][i];
        if(D[fiu]>0){
            D[nod]+=D[fiu];
        }
    }
    D[nod]+=v[nod];

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