Pagini recente » Cod sursa (job #663752) | Cod sursa (job #1396005) | Cod sursa (job #533808) | Cod sursa (job #854007) | Cod sursa (job #2870569)
#include <iostream>
#include <vector>
#include <deque>
using namespace std;
vector <int>v[10005];
deque<int>dq;
int n,m,start,i,cost[10005],viz[10005],x,y;
void bfs(int start)
{
int p;
viz[start]=1;
dq.push_back(start);
while(!dq.empty())
{
p=dq.front();
dq.pop_front();
for(auto it=v[p].begin(); it!=v[p].end(); it++)
if(!viz[*it])
{
viz[*it]=1;
dq.push_back(*it);
cost[*it]=cost[p]+1;
}
}
}
int main()
{
cin>>n>>m>>start;
for(int i=1; i<=m; i++)
{
cin>>x>>y;
v[x].push_back(y);
}
for(i=1;i<=n;i++)
cost[i]=-1;
cost[start]=0;
bfs(start);
for(i=1;i<=n;i++)
cout<<cost[i]<<' ';
return 0;
}