Cod sursa(job #3359932)

Utilizator Maya_PopaPopa Maya Diana Maya_Popa Data 6 iulie 2026 17:06:28
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <vector>
#define MAX 16003

using namespace std;
ifstream fin ("asmax.in");
ofstream fout ("asmax.out");
int v[MAX];
vector<int> adj[MAX];
int dp[MAX];
void dfs (int x, int parent) {
    dp[x]=v[x];
    for (int i:adj[x]) {
        if (i!=parent) {
            dfs(i, x);
            if (dp[i]>0) {
                dp[x]+=dp[i];
            }
        }
    }
}
int main() {
    int n,i,a,b,maxim;
    fin>>n;
    for (i=1; i<=n; i++) {
        fin>>v[i];
    }
    for (i=0; i<n-1; i++) {
        fin>>a>>b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    dfs(1,0);
    maxim=dp[1];
    for (i=2; i<=n; i++) {
        if (dp[i]>maxim) {
            maxim=dp[i];
        }
    }
    fout<<maxim<<endl;
    return 0;
}