Cod sursa(job #570942)

Utilizator vladpalosVlad Palos vladpalos Data 3 aprilie 2011 19:42:05
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>

#define MAXN 16001

using namespace std;

vector <short int> g[MAXN];
bool viz[MAXN];
int bsum[MAXN];

short int n;

void df(int n){
    viz[n]=true;   
    for (int i=0;i<g[n].size();i++)
        if (!viz[g[n][i]]){
            df(g[n][i]);
            if (bsum[g[n][i]] >0)bsum[n]+=bsum[g[n][i]];
        }
}

int main ()
{
    fstream fin ("asmax.in", ios::in);
        fin >>n;
        for (int i=1;i<=n;i++)fin>>bsum[i];     
        int x,y;
        while (fin>>x>>y){
            g[x].push_back(y);
            g[y].push_back(x);
        }    
    fin.close();
   
    for (int i=1; i<=n; i++)viz[i]=false;
    
    df(1);

    int max = bsum[1];
    
    for (int i=1;i<=n;i++)if (bsum[i]>max)max = bsum[i];
    fstream fout("asmax.out", ios::out);
    fout<<max;
    fout.close();

return 0;
}