Pagini recente » Cod sursa (job #1069414) | Cod sursa (job #1055955) | Cod sursa (job #537399) | Cod sursa (job #1933037) | Cod sursa (job #1492828)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
const int MAX = 1e5 + 5;
vector < int > q[MAX];
deque < int > lx;
int v[MAX];
inline void bfs(int s)
{
int x;
v[s] = 0 ;
lx.push_back(s);
while(!lx.empty()){
x = lx.front();
lx.pop_front();
for(int i = 0; i < q[x].size(); i++)
if(v[q[x][i]] == -1){
v[q[x][i]] = v[x] + 1;
lx.push_back(q[x][i]);
}
}
}
int main()
{
int n, m , s,x,y;
fin >> n >> m >> s;
for(int i = 0; i < m; i++){
fin >> x >> y;
q[x].push_back(y);
}
memset(v,-1,sizeof(v));
bfs(s);
for(int i = 1; i <= n; i++)
fout << v[i] <<" ";
return 0;
}