Cod sursa(job #2424323)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 22 mai 2019 21:36:23
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
#define Dim 16008
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
int N,A[Dim],Sum[Dim],a,b,ans;
bool viz[Dim];

vector <int> V[Dim];

void DFS(int nod)
{
    viz[nod]=1;
    for(unsigned int i=0;i<V[nod].size();i++)
    {
        int vecin=V[nod][i];
        if(!viz[vecin])
        {
            DFS(vecin);
            if(Sum[vecin]>0) Sum[nod]+=Sum[vecin];
        }
    }
}

int main()
{
    f>>N;
    for(int i=1;i<=N;i++)
    {
        f>>A[i];
        Sum[i]=A[i];
    }
    for(int i=1;i<N;i++)
    {
       f>>a>>b;
       V[a].push_back(b);
       V[b].push_back(a);
    }
    DFS(1);
    for(int i=1;i<=N;i++) ans=max(ans,Sum[i]);
    g<<ans;

    return 0;
}