Pagini recente » Cod sursa (job #1626588) | Cod sursa (job #2554239) | Cod sursa (job #2694508) | Cod sursa (job #1065505) | Cod sursa (job #2879616)
#include <fstream>
#include <set>
#include <queue>
using namespace std;
ifstream cin("bfs.in");
ofstream cout("bfs.out");
int n,m,nod,d[100001];
set <int> v[100001];
queue <int> q;
void bfs (int x)
{
q.push(x);
while (!q.empty())
{
int nodc=q.front();
q.pop();
for (auto i : v[nodc])
if (d[i]==-1)
{
q.push(i);
d[i]=d[nodc]+1;
}
}
}
int main()
{
cin>>n>>m>>nod;
for (int i=1; i<=m; i++)
{
int x,y;
cin>>x>>y;
v[x].insert(y);
}
for (int i=1; i<=n; i++)
d[i]=-1;
d[nod]=0;
bfs(nod);
for (int i=1; i<=n; i++)
cout<<d[i]<<" ";
}