Cod sursa(job #2766937)

Utilizator CelestinNegraru Celestin Celestin Data 3 august 2021 22:32:08
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <vector>
#include <fstream>
#define INFINITY 0x3f3f3f3f
#define maxi 16000
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
int tata[1+maxi],val[1+maxi],dinamica[1+maxi],n,summy=-INFINITY;
vector<int> V[1+maxi];
void READ()
{
    int a,b;
    f>>n;
    for(int i=1;i<=n;i++)
        f>>val[i];
    for(int i=1;i<=n-1;i++)
    {
        f>>a>>b;
        V[a].push_back(b);
        V[b].push_back(a);
    }
    f.close();
    return;
}
void DFS(int x,int tata)
{

    dinamica[x]=val[x];
    for(auto a:V[x])
    {
        if(a!=tata)
        {
            DFS(a,x);
            if(dinamica[a]>=0)
                dinamica[x]+=dinamica[a];
        }
    }

}
int main()
{
    READ();
    DFS(1,1);
    for(int i=1;i<=n;i++)
        if(dinamica[i]>summy)
         summy=dinamica[i];
    g<<summy;
    g.close();
    return 0;
}