Cod sursa(job #1159847)

Utilizator Mihai_ChihaiMihai Chihai Mihai_Chihai Data 29 martie 2014 21:59:46
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
using namespace std;
#define  nmax 10000
ifstream fin("bfs.in");
ofstream fout("bfs.out");



int a[nmax][nmax],viz[nmax],n,m,s,i,j,x,y;
int coada[nmax*nmax],drum[nmax];

int main()
{

    fin>>n>>m>>s;
    for (i=1;i<=m;i++) {fin>>x>>y; a[x][y]=1;}
    int p=1,u=1;

    for(i=1; i<=n; ++i) drum[i]=-1;

    coada[1]=s;
    viz[s]=1;
    drum[s]=0;

    while (p<=u)
    {
        for (i=1;i<=n;i++)
        if(!viz[i]  && a[coada[p]][i]) {
                u++;
                coada[u]=i;
                viz[i]=1;
                drum[i]=drum[coada[p]]+1;}
        p++;
    }

    for (i=1;i<=n;i++) fout<<drum[i]<<" ";

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