Pagini recente » Cod sursa (job #3215267) | Cod sursa (job #391705) | Cod sursa (job #466260) | Cod sursa (job #2611402) | Cod sursa (job #3268433)
#include<bits/stdc++.h>
using namespace std;
const int NMAX = 1e5 + 5;
int n, m, ans[NMAX], s;
vector<int> v[NMAX];
int main()
{
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
cin >> n >> m >> s;
int a, b;
for(int i = 1; i <= m; i++)
{
cin >> a >> b;
v[a].push_back(b);
}
for(int i = 1; i <= n; i++)
ans[i] = -1;
queue<int> q;
q.push(s);
ans[s] = 0;
while(!q.empty())
{
int nod = q.front();
q.pop();
for(auto u : v[nod])
{
if(ans[u] == -1 && u != s)
{
ans[u] = ans[nod] + 1;
q.push(u);
}
}
}
for(int i = 1; i <= n; i++)
cout << ans[i] << " ";
}