Cod sursa(job #2370352)

Utilizator marcogoldPop Mihali Marco Silviu marcogold Data 6 martie 2019 11:44:11
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda pregatire_cls12_oji Marime 0.66 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

ofstream fo("asmax.out");
ifstream fi("asmax.in");

int n;
int dp[16005];
int V[16006];
bool viz[16006];
int a,b;
vector <int> vecini[16005];
int maxim=-1000000000;

int DFS(int curent)
{
    viz[curent]=1;
    for(auto G:vecini[curent])
            if(viz[G]==false)
            dp[curent]=max(dp[curent],DFS(G)+dp[curent]);

        maxim=max(dp[curent],maxim);
        return dp[curent];
}

int main()
{fi>>n;
for(int i=1;i<=n;i++){fi>>V[i];dp[i]=V[i];}
while(fi>>a>>b){vecini[a].push_back(b);vecini[b].push_back(a);}
DFS(1);
fo<<maxim;


    return 0;
}