Cod sursa(job #2928294)

Utilizator dobreraduDobre Radu Fabian dobreradu Data 22 octombrie 2022 17:59:32
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

vector<int> v[100001];
queue<int> coada;
int dist[100001];


void bfs(){
  while(!coada.empty()){
    int nod = coada.front();
    coada.pop();
    for( int i = 0 ; i < v[nod].size(); i++ ){
      if( dist[v[nod][i]] == -1 ){
        coada.push(v[nod][i]);
        dist[v[nod][i]]=dist[nod]+1;
      }
    }
  }
}
int main()
{
    ifstream in("bfs.in");
    ofstream out("bfs.out");
    int n , m , i , a , b , s;
    in >> n >> m >> s;
    for( i = 1; i <= n; i++)
      dist[i]=-1;
    dist[s]=0;
    coada.push(s);
    for( i = 0 ; i < m ; i++ ){
      in >> a >> b;
      v[a].push_back(b);
    }
    bfs();
    for( i = 1; i <= n ; i++ )
      out << dist[i] << " ";
    return 0;
}