Cod sursa(job #2458698)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 21 septembrie 2019 12:27:04
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
#define NMAX 100003
vector <int> v [NMAX];
int dist [NMAX];
queue <int> q;
int n, m, S, a, b;
void bfs (int nod){
    dist [nod] = 1;
    q.push (nod);
    while (!q.empty ()){
        int nod = q.front ();
        q.pop ();
        for (int i = 0 ; i < v [nod].size (); i ++){
            if (dist [v [nod][i]] == 0){
                q.push (v [nod][i]);
                dist [v [nod][i]] = dist [nod] + 1;
            }
        }
    }
}
int main (){
    fin >> n >> m >> S;
    for (int i = 1; i <= m; i ++){
        cin >> a >> b;
        v [a].push_back (b);
    }
    bfs (S);
    for (int i = 1; i <= n; i ++)
        fout << dist [i] - 1 << " ";
    return 0;
}