Pagini recente » Cod sursa (job #2573601) | Cod sursa (job #1227316) | Cod sursa (job #522795) | Cod sursa (job #2902341) | Cod sursa (job #358978)
Cod sursa(job #358978)
#include<stdio.h>
#include<vector>
using namespace std;
int n,m,s;
int d[100003];
vector<int> v[100003];
void lee()
{
int q[100003],p=1,u=1,i,lim,j;
q[1]=s;
d[s]=1;
while(p<=u)
{
lim=v[q[p]].size();
for(i=0;i<lim;i++)
if(!d[v[q[p]][i]])
{
j=v[q[p]][i];
d[j]=d[q[p]]+1;
q[++u]=j;
}
p++;
}
}
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d%d%d",&n,&m,&s);
int i,x,y;
for(i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
v[x].push_back(y);
}
lee();
for(i=1;i<=n;i++)
printf("%d ",d[i]-1);
return 0;
}