Cod sursa(job #2543882)

Utilizator XXMihaiXX969Gherghinescu Mihai Andrei XXMihaiXX969 Data 11 februarie 2020 16:54:09
Problema Asmax Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

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

const int DIM = 16005;

vector <int> l[DIM];

int dp[DIM];

bool viz[DIM];

void dfs(int x, int &rez)
{
    viz[x] = true;

    for(int i = 0; i < l[x].size(); i++)
    {
        if(viz[l[x][i]] == false)
        {
        dfs(l[x][i],rez);
        dp[x] = max(dp[x], dp[i] + dp[l[x][i]]);
        }

    }
    rez = max(rez,dp[x]);
}
int main()
{

    int n;

    in >> n;

    for(int  i = 1; i <= n; i++)
        in >> dp[i];

    for(int i = 1; i < n; i++)
    {
        int x, y;

        in >> x >> y;

        l[x].push_back(y);
        l[y].push_back(x);

    }

    int rez = -1e9;
    dfs(1,rez);

    out << rez;

    return 0;
}