Pagini recente » Cod sursa (job #1035503) | Cod sursa (job #331367) | Cod sursa (job #858514) | Cod sursa (job #1971666) | Cod sursa (job #2112420)
#include <iostream>
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
int c[100005],n,m,s,i,x,y,viz[100005],prim,ultim,p;
vector <int> a[100005];
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d%d%d",&n,&m,&s);
for(i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
a[x].pb(y);
//a[y].pb(x);
}
//cout<<"DA";
viz[s]=1;
c[0]=s;
prim=ultim=0;
while(prim<=ultim)
{
p=c[prim++];
//cout<<p;
m=a[p].size();
for(i=0;i<m;i++)
{
if(!viz[a[p][i]])
{
viz[a[p][i]]=viz[p]+1;
c[++ultim]=a[p][i];
}
}
}
for(i=1;i<=n;i++)
if(!viz[i])
printf("-1 ");
else
printf("%d ",viz[i]-1);
return 0;
}