Pagini recente » Cod sursa (job #1500) | Cod sursa (job #3248410) | Cod sursa (job #2323509) | Cod sursa (job #2378127) | Cod sursa (job #2924214)
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
const int NMAX = 1e6+5;
vector<int>adj[NMAX];
int n, m, s;
int viz[NMAX];
inline int bfs(const int &x)
{
queue<int>q;
q.push(s);
while(!q.empty())
{
if(q.front() == x)
return viz[q.front()];
for(auto idx : adj[q.front()])
if(viz[idx] == 0 && idx!=s)
q.push(idx), viz[idx] = viz[q.front()]+1;
q.pop();
}
return -1;
}
inline void solve()
{
for(int i=1;i<=n;++i)
{
cout << bfs(i) << ' ';
memset(viz, 0, sizeof(viz));
}
}
int main()
{
cin >> n >> m >> s;
int a, b;
for(int i=1;i<=m;++i)
{
cin >> a >> b;
adj[a].push_back(b);
}
solve();
}