Pagini recente » Cod sursa (job #4593) | Cod sursa (job #3120954) | Cod sursa (job #491621) | Cod sursa (job #13281) | Cod sursa (job #2841219)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
#define NMAX 100001
vector <int> adia[NMAX], cost(NMAX, -1);
int n, m, s;
void Bfs(int nod) {
queue <int> q;
q.push(nod);
cost[nod] = 0;
while (!q.empty()) {
int x = q.front();
q.pop();
for (auto vecin : adia[x]) {
if (cost[vecin] == -1) {
cost[vecin] = cost[x] + 1;
q.push(vecin);
}
}
}
}
int main() {
fin >> n >> m >> s;
for (int a, b, i = 1; i <= m; ++ i) {
fin >> a >> b;
adia[a].push_back(b);
}
Bfs(s);
for (int i = 1; i <= n; ++ i)
fout << cost[i] << ' ';
return 0;
}