Pagini recente » Cod sursa (job #374389) | Cod sursa (job #696101) | Cod sursa (job #2337214) | Cod sursa (job #671072) | Cod sursa (job #2718208)
#include <bits/stdc++.h>
#define maxn 100010
using namespace std;
int N, M, L, Start;
vector <int> A[maxn];
int G[maxn], S[maxn], Cost[maxn];
void BFS(int nod) {
L = 1;
Cost[nod] = 0;
S[L] = nod;
for (int i = 1; i <= L; i++)
for (int j = 0; j < G[S[i]]; j++)
if (Cost[A[S[i]][j]] == -1) {
S[++L] = A[S[i]][j];
Cost[S[L]] = Cost[S[i]] + 1;
}
}
int main() {
cin.tie(0);
ios::sync_with_stdio(0);
cin >> N >> M >> L;
for (int i = 1; i <= M; i++) {
int x, y;;
A[x].push_back(y);
}
for (int i = 1; i <= N; ++i) {
Cost[i] = -1;
}
for (int i = 1; i <= N; i++)
G[i] = A[i].size();
BFS(Start);
for (int i = 1; i <= N; i++)
cout << Cost[i] << " ";
return 0;
}