Cod sursa(job #2343067)

Utilizator ptr22222Petru Popescu ptr22222 Data 13 februarie 2019 17:41:34
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

const int N=16002;

vector <int> a[N];
int n,m,X,mx=-10000;
bool viz[N];
int s[N];

void citire()
{
    int x,y;
    in>>n;
    for(int i=1;i<=n;i++)
    {
        in>>s[i];
    }
    for(int i=1;i<n;i++)
    {
        in>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    in.close();
}

void dfs(int x)
{
   viz[x]=true;
   for(auto y:a[x])
   {
       if(!viz[y])
       {
          dfs(y);
          if(s[y]>0)
          {
             s[x]+=s[y];
          }
       }
   }
}

int maxi()
{
    for(int i=1;i<=n;i++)
    {
         if(s[i]>mx)
         {
            mx=s[i];
         }
    }
}

int main()
{
    citire();
    dfs(1);
    maxi();
    out<<mx;
    return 0;
}