Cod sursa(job #3189013)

Utilizator PetruApostolApostol Mihnea Petru PetruApostol Data 4 ianuarie 2024 13:11:44
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream cin("asmax.in");
ofstream cout("asmax.out");

vector<vector<int>> v;
vector<int> a;
int max1;

void dfs(int parinte,int nod){
    int i;
    for(i=0;i<v[nod].size();i++){
        if(v[nod][i]!=parinte){
            dfs(nod,v[nod][i]);
            if(a[v[nod][i]]>=0)
                a[nod]+=a[v[nod][i]];
        }
    }
    max1=max(max1,a[nod]);
}

int main()
{
    max1=-1e9;
    int n,i,a1,b;
    cin>>n;
    v.resize(n+1);a.resize(n+1);
    for(i=1;i<=n;i++) cin>>a[i];
    for(i=0;i<n-1;i++){
        cin>>a1>>b;
        v[a1].push_back(b);
        v[b].push_back(a1);
    }
    dfs(-1,1);
    cout<<max1;
    return 0;
}