Pagini recente » Cod sursa (job #2370006) | Cod sursa (job #721312) | Cod sursa (job #1841043) | Cod sursa (job #2938488) | Cod sursa (job #3040648)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
int n,m,start,x,y,vecin;
int vizite[1001];
int distanta[1001];
vector<int> a[1001];
queue<int> o;
void BFS(int start){
v[start]=1;
d[start]=0;
o.push(start);
while(!o.empty()){
int k=o.front();
for(auto vecin::a[k]){
if (v[vecin]==0){
v[vecin]=1;
o.push(vecin);
d[vecin]=d[k]+1;
}
}
o.pop();
}
}
int main()
{
fin>>n>>m>>start;
while(fin>>x>>y){
a[x].push_back(y);
}
for(int i=1;i<=n;++i){
sort(a[i].begin(),a[i].end());
}
for(int i=1;i<=n;++i){
d[i]=-1;
}
BFS(start);
for(int i=1;i<=n;++i){
fout<<d[i]<<" ";
}
}