Pagini recente » Cod sursa (job #584058) | Cod sursa (job #375221) | Cod sursa (job #2245861) | Cod sursa (job #1656482) | Cod sursa (job #2979112)
#include <bits/stdc++.h>
using namespace std;
#define NMAX 100001
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,viz[NMAX],p;
queue<int>Q;
vector<int>A[NMAX];
void read(){
int x,y;
fin>>n>>m>>p;
for(int i=1;i<=m;i++){fin>>x>>y;A[x].push_back(y);}
}
void setx(){
for(int i=1;i<=n;i++) viz[i]=-1;
}
void BFS(int x){
viz[x]=0;
Q.push(x);
while(!Q.empty()){
x=Q.front();
Q.pop();
for(auto i:A[x]){
if(viz[i]==-1) viz[i]=viz[x]+1,Q.push(i);
}
}
}
int main(){
read();
setx();
BFS(p);
for(int i=1;i<=n;i++) fout<<viz[i]<<" ";
return 0;
}
/*
5 7 2
1 2
2 1
2 2
3 2
2 5
5 3
4 5
*/