Cod sursa(job #2179084)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 19 martie 2018 22:21:58
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");

queue <int> Q;
vector <int> v[100001];
int d[100005];
int n, m, s, x, y;
int main()
{
    f >> n >> m >> s;
     for ( int i = 1 ; i <= m ; i ++ )
      {
          f >> x >> y;
          v[x].push_back(y);
      }
   Q.push(s);d[s]=1;
     while(!Q.empty())
      {
          int nod=Q.front();
          Q.pop();
           for ( int i = 0 ; i < v[nod].size() ; i ++ )
           {
             int ngh=v[nod][i];
             if(d[ngh]==0)
              {
                  d[ngh]=d[nod]+1;
                  Q.push(ngh);
              }
           }
      }
     for ( int i = 1 ; i <= n ; i ++ )
           g << d[i]-1<<' ';

    return 0;
}