Cod sursa(job #3175303)

Utilizator PsyDuck1914Feraru Rares-Serban PsyDuck1914 Data 25 noiembrie 2023 16:48:10
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 1e5;

vector<int> adj[NMAX+1];

int rez[NMAX+1];
bool marked[NMAX+1];
int v[NMAX+1];

void dfs(int from){

    rez[from] += v[from];

    marked[from] = true;

    for(int to : adj[from]){
        if(!marked[to]){
            dfs(to);
            rez[from] = max(rez[from], rez[from] + rez[to]);
        }
    }
}

int main()
{
    int n;
    f >> n;

    for(int i=1; i<=n; i++){
        f >> v[i];
    }

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

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

    }

    dfs(1);

    int mx = -1e9;

    for(int i=1; i<=n; i++)
            mx = max(mx, rez[i]);

    g << mx;

    return 0;
}