Pagini recente » Cod sursa (job #2392296) | Cod sursa (job #1412497) | Cod sursa (job #2957161) | Cod sursa (job #1977998) | Cod sursa (job #828323)
Cod sursa(job #828323)
#include<cstdio>
#include<vector>
#include<deque>
#include<cstring>
using namespace std;
vector<int> G[100001];
deque<int> Q;
int C[100001],i,n,m,s,q,N,L,a,b;
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d %d %d\n",&n,&m,&s);
for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
G[a].push_back(b);
}
memset(C,-1,sizeof(C));
Q.push_back(s); C[s]=0;
for(;!Q.empty();)
{
N=Q.front(); Q.pop_front();
L=G[N].size();
for(i=0;i<L;i++)
{
if(C[G[N][i]]==-1)
{
Q.push_back(G[N][i]);
C[G[N][i]]=C[N]+1;
}
}
}
for(i=1;i<=n;i++)
printf("%d ",C[i]);
return 0;
}