Pagini recente » Cod sursa (job #80338) | Cod sursa (job #565713) | Cod sursa (job #1953004) | Cod sursa (job #383184) | Cod sursa (job #3200179)
#include <fstream>
#include <vector>
#include <queue>
#define dim 100002
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int n,m,fin;
int v[dim],drum[dim];
vector<int>V[dim];
queue<int>Q;
void bfs(){
Q.push(fin);
v[fin]=1;
while(!Q.empty()){
int nod=Q.front();
Q.pop();
for(int vec:V[nod])
if(!v[vec]) drum[vec]=drum[nod]+1,v[vec]=1,Q.push(vec);
}
for(int i=1;i<=n;++i)
if(i!=fin && drum[i]==0) cout<<-1<<" ";
else cout<<drum[i]<<" ";
}
int main()
{
cin>>n>>m>>fin;
for(;m;--m){
int a,b;
cin>>a>>b;
V[a].push_back(b);
}
bfs();
return 0;
}