Pagini recente » Cod sursa (job #1324529) | Cod sursa (job #1324527) | Cod sursa (job #3164369) | Cod sursa (job #2365565) | Cod sursa (job #2979108)
#include <bits/stdc++.h>
using namespace std;
#define NMAX 100000
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
*/