Pagini recente » Cod sursa (job #654987) | Cod sursa (job #2226445) | Cod sursa (job #2238802) | Cod sursa (job #94331) | Cod sursa (job #228524)
Cod sursa(job #228524)
#include<stdio.h>
#include<vector>
#include<queue>
#include<stdlib.h>
using namespace std;
vector<int> a[100005];
queue<int> c;
vector<int>::iterator ii;
long n,m,s,i,x,y,b[100005],q;
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%ld%ld%ld",&n,&m,&s);
for(i=1;i<=m;++i){scanf("%ld%ld",&x,&y);a[x].push_back(y);}
memset(b,-1,sizeof(b));
b[s]=0;c.push(s);
while(!c.empty()){q=c.front();c.pop();
for(ii=a[q].begin();ii!=a[q].end();++ii)
if(b[*ii]==-1){b[*ii]=b[q]+1;c.push(*ii);}}
for(i=1;i<=n;++i)printf("%ld ",b[i]);
printf("\n");
return 0;
}