Pagini recente » Cod sursa (job #1460180) | Cod sursa (job #1766495) | Cod sursa (job #366853) | Cod sursa (job #3036943) | Cod sursa (job #3224564)
#include <bits/stdc++.h>
#define MAXN 100000
using namespace std;
vector <int> vecini[MAXN + 1];
int d[MAXN + 1], coada[MAXN + 1];
ifstream cin ("bfs.in");
ofstream cout("bfs.out");
int main()
{
int n, m, x, s, y, p, u, node, v, i;
cin >> n >> m >> s;
for( i = 0; i < m; i++ ){
cin >> x >> y;
vecini[x].push_back(y);
}
d[s] = 1;
coada[1] = s;
p = u = 1;
while( p <= u ){
node = coada[p];
for( i = 0; i < vecini[node].size(); i++ ){
v = vecini[node][i];
if(d[v] == 0){
u++;
coada[u] = v;
d[v] = d[node] + 1;
}
}
p++;
}
for( i = 1; i <= n; i++ )
cout << d[i] - 1 << " ";
cout << endl;
return 0;
}