Pagini recente » Cod sursa (job #54166) | Cod sursa (job #109235) | Cod sursa (job #1913728) | Cod sursa (job #3244731) | Cod sursa (job #3005214)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int v[100001], x[100001];
int main()
{
queue<int> q;
int a[1001][1001];
int n, m, start, i, h, d, k=10;
fin>>n>>m>>start;
for(i=1; i<=m; i++){
fin>>d>>h;
a[d][h]=1;}
q.push(start);
v[start]=1;
x[start]=0;
while(!q.empty()){
k=q.front();
for(int j=1;j<=n;++j){
if(v[j]==0 && a[k][j]==1){
v[j]=1;
x[j]=x[k]+1;
q.push(j);
}
}
q.pop();
}
for(int y=1; y<=n; y++){
if(y==start)fout<<0<<' ';
else if(x[y]==0&&y!=start)fout<<-1<<' ';
else fout<<x[y]<<' ';
}
}