Pagini recente » Cod sursa (job #2556369) | Cod sursa (job #1853541) | Cod sursa (job #1096208) | Cod sursa (job #456997) | Cod sursa (job #1028025)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector<int> V[100001];
int k,a,b,n,m,nr_drum[100001],nod,st=1,dr=1,coada[100001];
int main()
{
fin>>n>>m>>nod;
for(;m;m--){
fin>>a>>b;
if(a!=b)
V[a].push_back(b);
}
coada[dr]=nod;dr++;
while(st<dr){
k=coada[st];
for(int i=0;i<V[k].size();i++){
if(!nr_drum[V[k][i]]){
coada[dr]=V[k][i];dr++;
nr_drum[coada[dr-1]]=nr_drum[k]+1;
}
}
st++;
}
for(int i=1;i<n;i++)
if(nr_drum[i]==0)
nr_drum[i]=-1;
nr_drum[nod]=0;
for(int i=1;i<=n;i++)
fout<<nr_drum[i]<<" ";
return 0;
}