Cod sursa(job #2047499)

Utilizator eduardandrei20Nechifor Eduard Andrei eduardandrei20 Data 24 octombrie 2017 21:50:20
Problema Asmax Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#define N 16000
#include <fstream>
using namespace std;
ifstream in("asmax.in");
ofstream out("asmax.out");
int d[N],n,S[N];
bool viz[N];
int Smax=-1000000000;
void adaug(int a,int b);
struct nod { int info;
nod *next;
}*L[N];

void r()
{
    in >> n;
    for ( int i = 1 ;i <=n ; ++i)
     in >> d[i];

     int a,b;
     while( in >> a >>b)

     {

         adaug(a,b);
         adaug(b,a);
     }




}


void adaug(int x , int y)

{

    //adaug pe x la lista lui y

    nod *aux=new nod;
    aux->info=y;
    aux->next=L[x];
    L[x]=aux;


}


void DFS(int NOD)

{
    viz[NOD]=true;

    for(nod *aux=L[NOD]; aux ; aux=aux->next)
    {

        if(!viz[aux->info]){DFS(aux->info);
       if(S[aux->info]>0)
        S[NOD]+=S[aux->info];}


    }
S[NOD] +=d[NOD];

Smax = max(Smax,S[NOD]);




}



int main()
{
r();
DFS(1);
cout <<Smax<<" ";

    return 0;
}