Pagini recente » Cod sursa (job #3269366) | Cod sursa (job #2986938) | Cod sursa (job #2828973) | Cod sursa (job #2945808) | Cod sursa (job #2792667)
#include <bits/stdc++.h>
using namespace std;
vector<int> ad[100001];
struct mystr
{
int nod, val;
};
queue<mystr> q;
int f[100001];
void bfs()
{
int a, i, b;
mystr aux;
while (!q.empty())
{
a = q.front().nod;
b = q.front().val;
q.pop();
for (i = 0; i < ad[a].size(); i++)
{
if (f[ad[a][i]] == -1)
{
aux.nod = ad[a][i];
aux.val = b + 1;
f[aux.nod] = aux.val;
q.push(aux);
}
}
}
}
int main()
{
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int n, m, s, i, a, b;
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> n >> m >> s;
for (i = 0; i < m; i++)
{
cin >> a >> b;
ad[a].push_back(b);
}
for (i = 1; i <= n; i++)
f[i] = -1;
mystr aux;
aux.nod = s;
aux.val = 0;
q.push(aux);
f[s] = 0;
bfs();
for (i = 1; i <= n; i++)
cout << f[i] << ' ';
return 0;
}