Pagini recente » Cod sursa (job #503998) | Cod sursa (job #695812) | Cod sursa (job #910547) | Cod sursa (job #1954277) | Cod sursa (job #2953702)
#include <bits/stdc++.h>
using namespace std;
#define INF 1e9
int b[100005];
vector<int> graf[100005];
bool vf[1000005];
int main(void){
ofstream cout("bfs.out");
ifstream cin("bfs.in");
int n,m,nd;
cin >> n >> m >> nd;
for(int i = 1;i<=m;i++){
int a, b;
cin >> a >> b;
graf[a].push_back(b);
}
queue<int> coada;
coada.push(nd);
for(int i = 1;i<=n;i++){
b[i] = -1;
}
vf[nd] = 1;
b[nd] = 0;
while(!coada.empty()){
int nod = coada.front();
for(auto newnod: graf[nod]){
if(b[newnod] == -1){
vf[newnod] = 1;
coada.push(newnod);
b[newnod] = b[nod] + 1;
}
}
coada.pop();
}
for(int i = 1;i<=n;i++){
cout << b[i] << ' ';
}
}