Cod sursa(job #3154175)

Utilizator Allie28Radu Alesia Allie28 Data 3 octombrie 2023 17:16:36
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <limits.h>

using namespace std;

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

const int LMAX = 16005;
vector<int> L[LMAX];
int v[LMAX], summax[LMAX];
void dfs(int node, int father) {
    summax[node] =  v[node];
    for (int vec : L[node]) {
        if (vec != father) { //nevizitat
            dfs(vec, node);
            if (summax[vec] > 0) {
                summax[node]+=summax[vec];
            }
        }
    }
}


int main(){

    int n, x, y, i;
    fin>>n;
    for (i = 1; i <= n; i++) {
        fin>>v[i];
    }
    while (fin>>x>>y) {
        L[x].push_back(y);
        L[y].push_back(x);
    }
    dfs(1,1);
    x = INT_MIN;
    for (i = 1; i <= n; i++) {
        x = max(x, summax[i]);
    }
    fout<<x;





    fin.close();
    fout.close();
    return 0;
}