Cod sursa(job #541086)

Utilizator DanceKrissCristian Oancea DanceKriss Data 24 februarie 2011 20:13:28
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include iostream
#includestdio.h

using namespace std;

const int LUNG = 100005;
int viz[LUNG], cat[LUNG], c[LUNG],
    n,m,start;
typedef struct nod
    {
        int inf;
        nod adr;
    } TNOD;
TNOD v[LUNG],p;

void add( int a, int b )
{
    p= new TNOD;
    p-inf=a;
    p-adr=v[b];
    v[b]=p;
}

void citire()
{
    int i,x,y;
    cinnmstart;

    for( i=1; i=m; i++ )
        {
            cinxy;
            add(y,x);
        }
}

void bfs()
{
    int li,ls,x,size=0;
    li=ls=0;
    cat[start] = 0;
    c[li++] = start;
    viz[start] = 1;

    while( ls=li )
        {
            x=c[ls];
            size++;
            for ( TNOD p=v[x]; p!=0; p=p-adr )
                if( !viz[p-inf] && v[p-inf] )
                    cat[p-inf] = size,
                    c[li++] = p-inf,
                    viz[p-inf] = 1;
            ls++;
        }

    for(int i=1; i=n; i++ )
        if(!viz[i]) printf(-1 );
            else printf(%d ,cat[i]);

    printf(n);
}

int main()
{
    freopen(bfs.in,r,stdin);
    freopen(bfs.out,w,stdout);
    citire();
    bfs();
    fclose(stdin);
    fclose(stdout);
    return 0;
}