Pagini recente » Cod sursa (job #599066) | Cod sursa (job #2051024) | Cod sursa (job #2645966) | Cod sursa (job #1387538) | Cod sursa (job #3149463)
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>
#include <unordered_map>
#include <stack>
#include <queue>
#define clear(Q) while (!(Q).empty()) (Q).pop()
//#define CONSOLE /// daca ai in consola
#define int long long
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
#ifdef CONSOLE
#include <iostream>
#define fin cin
#define fout cout
#endif
const int MAXN=100005;
vector<int>G[MAXN];
queue<int>Q;
int d[MAXN], pred[MAXN],n;
void bfs(int x){
d[x]=0;
Q.push(x);
while(!Q.empty()){
int y=Q.front();
Q.pop();
for(int j=0;j<G[y].size();j++){
if(d[G[y][j]]==-1){
d[G[y][j]]=d[y]+1;
Q.push(G[y][j]);
}
}
}
}
signed main() {
int m,x,a,b;
fin>>n>>m>>x;
for(int i=1;i<=n;i++)
d[i]=-1;
for (int i=1;i<=m;i++) {
fin>>a>>b;
G[a].push_back(b);
}
bfs(x);
for(int i=1;i<=n;i++) fout<<d[i]<<" ";
return 0;
}