Pagini recente » Cod sursa (job #680206) | Cod sursa (job #2112092) | Cod sursa (job #1224485) | Cod sursa (job #317724) | Cod sursa (job #2783585)
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
const int N = 1e5 + 1;
int n, m, s, x, y, d[N];
vector<int> c[N];
void bfs(int start){
queue<int> q;
q.push(start);
d[start] = 0;
while(!q.empty()){
int nod = q.front();
for(int y: c[nod]){
if(d[y] == -1){
d[y] = d[nod] + 1;
q.push(y);
}
}
q.pop();
}
}
int main(){
f >> n >> m >> s;
for(int i = 0; i < m; i++){
f >> x >> y;
c[x].push_back(y);
}
f.close();
for(int i = 1; i <= n; i++)
d[i] = -1;
bfs(s);
for(int i = 1; i <= n; i++)
g << d[i] << ' ';
g.close();
}