Pagini recente » Cod sursa (job #3342988) | Cod sursa (job #2208207) | Cod sursa (job #3313414) | Cod sursa (job #109071) | Cod sursa (job #3306782)
#include <bits/stdc++.h>
using namespace std;
vector<int> G[100001];
int sol[100001];
bool viz[100001];
void BFS (int y) {
sol[y] = 0;
queue <int> q;
q.push(y);
viz[y] = true;
while (!q.empty()) {
int nod = q.front();
q.pop();
for (auto i: G[nod]) {
if (viz[i] == false) {
viz[i] = true;
q.push(i);
sol[i] = sol[nod] + 1;
}
}
}
}
int main() {
ifstream cin ("bfs.in");
ofstream cout ("bfs.out");
int n, m, s;
cin >> n >> m >> s;
for (int i = 0; i < m; ++i) {
int x, y;
cin >> x >> y;
G[x].push_back(y);
}
for (int i = 1; i <= n; ++i) {
sol[i] = -1;
}
BFS(s);
for (int i = 1; i <= n; ++i) {
cout << sol[i] << " ";
}
return 0;
}