Cod sursa(job #1389911)

Utilizator DysKodeTurturica Razvan DysKode Data 16 martie 2015 18:48:50
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <vector>
#include <fstream>
#define curSiz v[q[in]].size()
#define curAsc v[q[in]][i]
#define curPoz q[in]
using namespace std;

ifstream fin("bfs.in");
ofstream fout("bfs.out");


vector < int > v[100010];
int n,m,s,a,b,ver[100010],q[100010],i,in,sf;

int main()
{
    fin>>n>>m>>s;
    for(i=1 ; i<=m ; ++i)
    {
        fin>>a>>b;
        v[a].push_back(b);
    }
    ver[ s ] = 1;
    q[ 1 ] = s;
    in = 1;
    sf = 1;
    while( in <= sf )
    {
        for( i=0 ; i < curSiz ; ++i )
        {
            if( ver[ curAsc ] == 0 )
            {
                ver[ curAsc ] = ver[ curPoz ] + 1;
                ++sf;
                q[ sf ] = curAsc;
            }
        }

        ++in;
    }

    for(i=1 ; i<=n ; ++i)
    {
        fout<<ver[ i ] - 1<<' ';
    }





return 0;
}