Cod sursa(job #2368822)

Utilizator crion1999Anitei cristi crion1999 Data 5 martie 2019 18:27:48
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda pregatire_cls12_oji Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <vector>

#define NMAX 16006

using namespace std;

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

int N;
int value[NMAX];

vector<int> graph[NMAX];
bool visited[NMAX];
int dp[NMAX];

int DFS(int a)
{
    if(visited[a])
        return 0;

    visited[a] = 1;

    int sum = value[a];

    for(auto y : graph[a])
        sum = max(sum, sum + DFS(y));

    dp[a] = sum;
    return sum;
}



int main()
{
    fi >> N;
    for(int i = 1; i <= N; ++i)
        fi >> value[i];
    for(int i = 1; i < N; ++i)
    {
        int a, b;
        fi >> a >> b;
        graph[a].push_back(b);
        graph[b].push_back(a);
    }
    DFS(1);
    int maxx = -1001;
    for(int i = 1; i <= N; ++i)
        maxx = max(maxx, dp[i]);

    fo << maxx;

}