Cod sursa(job #2438558)

Utilizator CharacterMeCharacter Me CharacterMe Data 12 iulie 2019 18:35:12
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <cstdio>
#include <vector>
#include <bitset>
#define Inf -1005
using namespace std;
int n, val[16005], i, j, out=Inf;
vector<int> graph[16005];
bitset<16005> check;
void dfs(int node);
int main()
{
    freopen("asmax.in", "r", stdin);
    freopen("asmax.out", "w", stdout);
    scanf("%d", &n);
    for(i=1; i<=n; ++i) scanf("%d", &val[i]);
    for(i=1; i<n; ++i){
        int x, y;
        scanf("%d%d", &x, &y);
        graph[x].push_back(y);
        graph[y].push_back(x);
    }
    dfs(1);
    printf("%d", out);
    return 0;
}
void dfs(int node){
    check[node]=true;
    for(auto i:graph[node]){
        if(check[i]==false){
            dfs(i);
            val[node]+=max(val[i], 0);
        }
    }
    out=max(out, val[node]);
    return;
}