Pagini recente » Cod sursa (job #253777) | Cod sursa (job #2708266) | Cod sursa (job #2971955) | Cod sursa (job #219501) | Cod sursa (job #3265735)
#include <bits/stdc++.h>
#define INF 99999999
#define DIM 100000
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
//ifstream f("filesmodel.in");
//ofstream g("filesmodel.out");
int n,m;
int s;
int x,y;
vector <int> L[DIM+5];
int d[DIM+5];
int sol = 0;
deque<int> dq;
void bfs(int start){
for(int i=1;i<=n;i++){
d[i] = INF;
}
d[start] = 0;
dq.push_back(start);
while(!dq.empty()){
int nod = dq.front();
dq.pop_front();
for(auto vec:L[nod]){
if(d[vec] != INF){
continue;
}
d[vec] = d[nod]+1;
dq.push_back(vec);
}
}
}
signed main(){
f>>n>>m;
f>>s;
for(int i=1;i<=m;i++){
f>>x>>y;
L[x].push_back(y);
}
bfs(s);
for(int i=1;i<=n;i++){
if(d[i] == INF){
g<<"-1 ";
}else{
g<<d[i]<<" ";
}
}
return 0;
}