Cod sursa(job #2015762)

Utilizator dumitrescu_andreiDumitrescu Andrei dumitrescu_andrei Data 27 august 2017 14:23:31
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("asmax.in");
ofstream g("asmax.out");

vector <int> V[16001];
int a[16001],n,Smax;
bool viz[16001];
int sum[16001],S=-INT_MAX;

void DFS(int x)
{
    viz[x]=1;
    sum[x]=a[x];

    for(int i=0;i<V[x].size();++i)
        if(!viz[V[x][i]])
        {
            DFS(V[x][i]);
            if(sum[V[x][i]]>0)
                sum[x]+=sum[V[x][i]];
        }

}


int main()
{

  f>>n;
  for(int i=1;i<=n;++i)
    f>>a[i];

  for(int i=1;i<n;++i)
  {
      int x,y;
      f>>x>>y;
      V[x].push_back(y);
      V[y].push_back(x);
  }
  DFS(1);
  for(int i=1;i<=n;++i)
    S=max(S,sum[i]);
  g<<S;
  return 0;

}