Pagini recente » Cod sursa (job #921274) | Cod sursa (job #2970061) | Cod sursa (job #3228692) | Cod sursa (job #2727819) | Cod sursa (job #3250586)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
#define cin fin
#define cout fout
int n,m,a,b,x,viz[100005],maxi,t;
vector<vector<int>> v;
void bfs(int k)
{
queue< int> q;
q.push(k); viz[k]=1;
while(!q.empty())
{
int nod=q.front();
q.pop();
for(int i=0;i<v[nod].size();i++)
{
if(viz[v[nod][i]]==0)
{
viz[v[nod][i]]=viz[nod]+1;
q.push(v[nod][i]);
}
}
}
}
int main()
{
cin>>n>>m>>t;
v.resize(n+1);
for(int i=1;i<=m;i++)
{
cin>>a>>b;
v[a].push_back(b);
}
for(int i=1;i<=n;i++)
sort(v[i].begin(), v[i].end());
bfs(t);
for(int i=1;i<=n;i++)
{
if(viz[i]>=1)cout<<viz[i]-1<<" ";
else cout<<-1<<" ";
}
return 0;
}