Cod sursa(job #2247165)

Utilizator greelioGreenio Greely greelio Data 27 septembrie 2018 22:31:46
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<bits/stdc++.h>
#define NMAX 16010
using namespace std;

vector<int>V[NMAX];
int dp[NMAX];
int viz[NMAX];
int a[NMAX];
int n, rs=-10000;

int DFS(int x) {
    int v=0;
    viz[x]=1;

    for (auto it : V[x]) {
        if (!viz[it]) {
            v+=DFS(it);
        }
    }
  //  cout<<x<<" "<<v+a[x]<<'\n';
    rs=max(rs,v+a[x]);
    return max(v+a[x], 0);
}

int main() {
    ifstream cin("asmax.in");
    ofstream cout("asmax.out");
    cin>>n;
    for (int i=1; i<=n; i++) cin>>a[i];

    for (int i=1; i<n; i++) {
        int x,y; cin>>x>>y;
        V[x].push_back(y);
        V[y].push_back(x);
    }

    DFS(1);
    cout<<rs;

    return 0;
}