Cod sursa(job #2829438)

Utilizator miruna_avramAvram Miruna miruna_avram Data 8 ianuarie 2022 16:55:05
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");

vector<int> v[16001];
vector<int> vis;
int val[100001];
int n,x,y,maxi=-10001;

int dfs(int node){
    int i;
    vis[node]=1;
    for(i=0;i<v[node].size();i++){
        if(!vis[v[node][i]]){
           int sum=dfs(v[node][i]);
            if(val[node]+sum>val[node])
                val[node]+=sum;
        }
    }
    if(maxi<val[node])
        maxi=val[node];
    return val[node];
}

int main(){
    int i;
    f>>n;
    for(int i=1;i<=n;i++)
    {
        f>>val[i];
    }
    for(i=0;i<n-1;i++){
        f>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    for(i=0;i<=n;i++)
    {
        vis.push_back(0);
    }
    dfs(1);
    g<<maxi;

}