Cod sursa(job #1307755)

Utilizator robertstrecheStreche Robert robertstreche Data 2 ianuarie 2015 19:38:38
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <bitset>
#include <queue>

#define lmax 16005
#define pb push_back

using namespace std;

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

bitset <lmax>ap;

int n,m,x,y,maxi=-10000000;
int ma[lmax];

queue <int>q;

vector <int>v[lmax];

inline void df(int nod)
{
    vector <int>::iterator it;

    ap[nod]=1;

    for (it=v[nod].begin();it!=v[nod].end();it++)
      if (!ap[*it])
        {
           df(*it);

           if (ma[*it]>0)
            ma[nod]+=ma[*it];
          }
}
int main()
{
   f>>n;

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

   for (int i=1;i<=n-1;i++)
    {
        f>>x>>y;

        v[x].pb(y);
        v[y].pb(x);
    }

    df(1);

    for (int i=1;i<=n;i++)
     if (ma[i]>maxi)
      maxi=ma[i];

    g<<maxi;

   f.close();
   g.close();
}