Pagini recente » Cod sursa (job #1179002) | Cod sursa (job #2446468) | Cod sursa (job #1589816) | Cod sursa (job #1815144) | Cod sursa (job #407320)
Cod sursa(job #407320)
#include<stdio.h>
#include<vector>
using namespace std;
#define Nmax 100010
int N,M,S,v[Nmax];
vector <int> l[Nmax];
int c[Nmax];
void BF()
{
int st,dr;
c[1]=S;
v[S]=1;
for(st=dr=1; st<=dr;++st)
for(int i=0;i<(int)l[c[st]].size();++i)
if (!v[ l[c[st]][i] ])
{
c[++dr]= l[c[st]][i];
v[ l[c[st]][i] ]=v[c[st]]+1;
}
for(int i=1;i<=N;++i)
printf("%d ",v[i]-1);
printf("\n");
}
void cit();
int main()
{
cit();
BF();
return 0;
}
void cit()
{
int a,b;
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d%d%d",&N,&M,&S);
for(int i=1;i<=M;++i)
{
scanf("%d%d",&a,&b);
l[a].push_back(b);
}
}