Pagini recente » Cod sursa (job #3243613) | Cod sursa (job #2729332) | Cod sursa (job #1589471) | Cod sursa (job #322815) | Cod sursa (job #2388598)
#include <bits/stdc++.h>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");
#define NMAX 100001
vector <int> v[NMAX];
queue <int> q;
int poz[NMAX];
int n,m,X;
void bfs(){
q.push(X);
poz[X]=0;
while(!q.empty()){
int i=q.front();
q.pop();
for(int j=0;j<v[i].size();j++){
if(poz[v[i][j]]==-1){
q.push(v[i][j]);
poz[v[i][j]]=poz[i]+1;
}
}
}
}
int main()
{
in>>n>>m>>X;
for(int i=1;i<=m;i++){
int x,y;
in>>x>>y;
v[x].push_back(y);
}
memset(poz,-1,sizeof(poz));
bfs();
for(int i=1;i<=n;i++)
out<<poz[i]<<" ";
return 0;
}