Cod sursa(job #1352277)

Utilizator cristi103tiron cristian cristi103 Data 21 februarie 2015 12:18:00
Problema BFS - Parcurgere in latime Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include<iostream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int i,j,m,n,s,x,y,k,a[10001][10001],viz[10001],q[10001],dist[10001];
void bfs (int x)
{
    int k=0;
    viz[x]=1;
  //  q[++k]=x;
    for (i=1;i<=n;++i)
        if (a[x][i]==1 && viz[i]==0)
           q[++k]=i;
    for (j=1;j<=k;++j)
    {
        if(viz[q[j]]==0)
            dist[q[j]]=dist[x]+1;
        bfs(q[j]);    }
}
int main()
{
   fin>>n>>m>>s;
   for (i=1;i<=m;++i)
   {
       fin>>x>>y;
       a[x][y]=1;
   }
   bfs(s);
   for (i=1;i<=n;++i)
   if (dist[i]==0 && i!=s)
    fout<<"-1 ";
   else
   fout<<dist[i]<<" ";



    return 0;
}