Pagini recente » Cod sursa (job #3286846) | Cod sursa (job #146853) | Cod sursa (job #143419) | Cod sursa (job #2248968) | Cod sursa (job #3264848)
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
vector<int> L[100005];
queue<int> q;
int n,m,x,y,viz[100005],c,s;
void bfs(int k)
{
q.push(k);
viz[k]=1;
while(!q.empty())
{
k=q.front();
for(auto i:L[k])
{
if(viz[i]==0)
{
viz[i]=viz[k]+1;
q.push(i);
}
}
q.pop();
}
}
int main()
{
cin>>n>>m>>s;
for(int i=1; i<=m; i++)
{
cin>>x>>y;
L[x].push_back(y);
}
viz[s]=1;
bfs(s);
for(int i=1; i<=n; i++)
{
if(viz[i]==0)
cout<<-1<<" ";
else
cout<<viz[i]-1<<" ";
}
}