Pagini recente » Cod sursa (job #365190) | Cod sursa (job #1381022) | Cod sursa (job #2152923) | Cod sursa (job #3251582) | Cod sursa (job #3182686)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector <int> G[100002];
int d[100002];
queue <int> q;
void bfs(int s){
d[s] = 0;
q.push(s);
while(!q.empty()){
for(auto x : G[q.front()]){
if(d[x] == -1){
d[x] = d[q.front()] + 1;
q.push(x);
}
}
q.pop();
}
}
int main()
{
int n,i,m,u,v,s;
memset(d,-1,sizeof d);
fin >> n >> m >> s;
for(i = 1; i <= m; i++){
fin >> u >> v;
G[u].push_back(v);
}
bfs(s);
for(i = 1; i <= n; i++) fout << d[i] << " ";
return 0;
}