Cod sursa(job #2379868)

Utilizator Sergiu.VictorTalmacel Sergiu Victor Sergiu.Victor Data 14 martie 2019 10:48:15
Problema BFS - Parcurgere in latime Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
#define NMAX 100000
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");

int N,M,S;
vector <int> D(NMAX,-1);
vector <vector <int>> G(NMAX);
void citire()
{
    int x,y;
    fin>>N>>M>>S;
    for(int i=0;i<M;i++)
    {
        fin>>x>>y;
        G[x].push_back(y);

    }
}
void bfs(int x)
{
    queue <int> coada;
    D[x]=0;

    coada.push(x);
    while(!coada.empty())
    {
        int c= coada.front();
        coada.pop();

        for(int i=0;i<G[c].size();i++) {
            int temp = G[c][i];
            if (D[temp]==-1) {

                D[temp] = D[c] + 1;
                coada.push(temp);
            }
        }

    }


}
int main() {
    citire();
    bfs(S);
    for(int i=1;i<=N;i++)
         fout<<D[i]<<" ";
    return 0;
}