Cod sursa(job #2332322)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 30 ianuarie 2019 17:14:37
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <deque>
#include <vector>
#include <bitset>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
deque <int > coada;
vector <int> L[100100];
bitset <100100>fr;
int c[100100],i,n,m,start;
void bfs(int nod){
    coada.push_back(nod);
    c[nod]=1;
    fr[nod]=1;
    while(coada.empty()==0){
            nod=coada.front();
            coada.pop_front();
        for(i=0;i<L[nod].size();i++){
            if(fr[L[nod][i]]==0){
                c[L[nod][i]]=c[nod]+1;
                fr[L[nod][i]]=1;
                coada.push_back(L[nod][i]);
            }
        }
    }
}
int main()
{
   fin>>n>>m>>start;
   int x,y;
   for(i=1;i<=m;i++){
        fin>>x>>y;

       L[x].push_back(y);
   }
   bfs(start);
   for(i=1;i<=n;i++)
    fout<<c[i]-1<<" ";
}