Cod sursa(job #2487646)

Utilizator LuciBBadea Lucian LuciB Data 5 noiembrie 2019 16:18:27
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <deque>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector <int> g[100001];
deque <int> dq;
int d[100001];
int n, m;
void bfs(int u){
  int v;
  d[u]=1;
  dq.push_back(u);
  while(!dq.empty()){
    v=dq.front();
    dq.pop_front();
    for(int i=0; i<g[v].size(); i++){
      if(!d[g[v][i]]){
        d[g[v][i]]=d[v]+1;
        dq.push_back(g[v][i]);
      }
    }
  }
}
int main(){
  int s, a, b;
  fin>>n>>m>>s;
  for(int i=0; i<m; i++){
    fin>>a>>b;
    g[a].push_back(b);
  }
  bfs(s);
  for(int i=1; i<=n; i++){
    if(i==s)
      fout<<0<<' ';
    else
      fout<<d[i]-1<<' ';
  }
  return 0;
}