Cod sursa(job #1114487)

Utilizator roby2001Sirius roby2001 Data 21 februarie 2014 18:05:19
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb

#include<list>
#include <iostream>
#include<fstream>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n,viz[16005],v[16005],maxi=-20000;

list<int> a[16005];
void citire()
{ int i,j;
  fin>>n;
  for(i=1;i<=n;i++)
      fin>>v[i];
  while(fin>>i>>j)
   { a[i].push_back(j);
     a[j].push_back(i);
   }
}

void asmax(int node)
{
    list<int>::iterator it;
    int i;
    viz[node]=1;
    for(it=a[node].begin(); it!=a[node].end(); it++)
     { if(!viz[*it] )
         {  asmax(*it);
            if(v[*it]>0)
              v[node]+=v[*it];
         }
       if(maxi<v[node])
          maxi=v[node];

     }
}

int main()
{   citire();
    int i;
    asmax(1);
    fout<<maxi;
    return 0;
}