Pagini recente » Cod sursa (job #2624488) | Cod sursa (job #1870437) | Cod sursa (job #732590) | Cod sursa (job #698649) | Cod sursa (job #2270667)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <deque>
#include <string>
#include <queue>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
queue<int>qu1;
vector<int>v1[100005];
int vf[100005];
void bfs(int x){
qu1.push(x);
vf[x]=1;
while(qu1.size() != 0){
for(int i=0;i<v1[x].size(); i++){
if(vf[v1[x][i]] == 0){
vf[v1[x][i]] = vf[x]+1;
qu1.push(v1[x][i]);
}
}
qu1.pop();
x = qu1.front();
}
}
int main()
{
int n,m,s,a,b;
fin>>n>>m>>s;
for(int i=0; i<m; i++){
fin>>a>>b;
v1[a].push_back(b);
}
bfs(s);
for(int i=1; i<=n; i++){
if(vf[i]!=0)
fout<<vf[i]-1<<' ';
else
fout<<-1<<' ';
}
return 0;
}