Pagini recente » Cod sursa (job #1879067) | Cod sursa (job #165573) | Cod sursa (job #2778689) | Cod sursa (job #615) | Cod sursa (job #2568659)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
const int DIM = 1e5 + 1;
vector <int> adj[DIM];
bitset <DIM> vis;
int dist[DIM];
main()
{
int n, m, s;
fin >> n >> m >> s;
for(; m; --m)
{
int x, y;
fin >> x >> y;
adj[x].emplace_back(y);
}
vis[s] = true;
queue <int> q;
q.emplace(s);
while(!q.empty())
{
int nod = q.front();
q.pop();
for(auto i : adj[nod])
if(!vis[i])
{
q.emplace(i);
vis[i] = true;
dist[i] = dist[nod] + 1;
}
}
for(int i = 1; i <= n; ++i)
if(!vis[i])
fout << -1 << ' ';
else
fout << dist[i] << ' ';
}