Cod sursa(job #2263524)

Utilizator lupulescu2001Lupulescu Vlad lupulescu2001 Data 18 octombrie 2018 19:15:37
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<vector>

using namespace std;

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

vector <int> G[16005];
int N,V[16005],DP[16005],Max=-200000000;

int DFS(int Nod,int Tata){
    for(auto i : G[Nod])
        if(i==Tata)
            continue;
        else{
            DFS(i,Nod);
            DP[Nod]=max(DP[Nod],DP[Nod]+DP[i]);
        }
}

int main(){
    fin>>N;
    for(int i=1;i<=N;i++){
        fin>>V[i];
        DP[i]=V[i];
    }
    for(int i=1;i<N;i++){
        int X,Y;
        fin>>X>>Y;
        G[X].push_back(Y);
        G[Y].push_back(X);
    }
    DFS(1,0);
    for(int i=1;i<=N;i++)
        Max=max(Max,DP[i]);
    fout<<Max<<'\n';
    return 0;
}