Pagini recente » Cod sursa (job #294936) | Cod sursa (job #1295614) | Cod sursa (job #3162343) | Cod sursa (job #3156983) | Cod sursa (job #3294677)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
int n, m, s, a, b, lee[100010];
vector <int> v[100010];
queue <int> q;
int main()
{
fin >> n >> m >> s;
for (int i = 1; i <= m; ++i) {
fin >> a >> b;
v[a].push_back(b);
}
lee[s] = 1;
q.push(s);
while (!q.empty()) {
int nod = q.front();
q.pop();
for (auto vecin : v[nod]){
if (lee[vecin] == 0){
lee[vecin] = lee[nod] + 1;
q.push(vecin);
}
}
}
for (int i = 1; i <= n; ++i){
fout << lee[i] - 1 << ' ';
}
return 0;
}