Pagini recente » Cod sursa (job #2457114) | Cod sursa (job #2175871) | Clasament nstr | Cod sursa (job #2192756) | Cod sursa (job #2880068)
#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 (unsigned int i=0; i<v[nodc].size(); i++)
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]<<" ";
}