Cod sursa(job #2128200)

Utilizator MogyyRaul Mogos Mogyy Data 11 februarie 2018 15:35:47
Problema Asmax Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");

unsigned int n,i,j,a[16001][16001],c[16001],viz[16001],Smax=0,S=0;
int v[16001],x,y;

void bfs(int nod);

int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
        Smax=Smax+v[i];
    }
    for(i=1;i<n;i++)
    {
        fin>>x>>y;
        a[x][y]=a[y][x]=1;
    }

    bfs(1);

    fout<<Smax;


    fin.close();
    fout.close();
    return 0;
}

void bfs(int nod)
{
    int ic=0,sc=0;
    c[ic]=nod;
    viz[nod]=1;

    S=v[nod];

    while(ic<=sc)
    {
        nod=c[ic];

        for(i=1;i<=n;i++)
            if(a[nod][i]==1 && viz[i]==0)
            {
                sc++;
                c[sc]=i;
                S=S+v[i];
                if(S>Smax) Smax=S;
                viz[i]=1;
            }
        ic++;
    }
}