Pagini recente » Cod sursa (job #1775669) | Cod sursa (job #162131) | Cod sursa (job #1602189) | Cod sursa (job #1741630) | Cod sursa (job #2458700)
#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 ++){
fin >> a >> b;
v [a].push_back (b);
}
bfs (S);
for (int i = 1; i <= n; i ++)
fout << dist [i] - 1 << " ";
return 0;
}