Cod sursa(job #1105370)

Utilizator traian.vidrascutraian vidrascu traian.vidrascu Data 11 februarie 2014 19:09:29
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
vector <int> gr[1000005];
queue <int> coada;

int n,m,x,y,z,s,v[1000005];
void bfs(int a)
{ int i,k=0;
  coada.push(a);
  while (coada.size()>0)
    { a=coada.front();
      for(i=0;i<gr[a].size();i++)
       if(v[gr[a][i]]==-1)
          {

            coada.push(gr[a][i]);
            v[gr[a][i]]=v[a]+1;
          }
      coada.pop();

    }
}
int main()
{   int i;
    f>>n>>m>>s;


    for(i=1;i<=m;i++)
        {
          f>>x>>y;
          gr[x].push_back(y);
        }
    for(i=1;i<=n;i++)
          v[i]=-1;
     v[s]=0;
     bfs(s);
    for (i=1;i<=n;i++)
          g<<v[i]<<" ";
    return 0;
}