Pagini recente » Cod sursa (job #2727818) | Cod sursa (job #3415) | Cod sursa (job #2596911) | Cod sursa (job #2664369) | Cod sursa (job #437161)
Cod sursa(job #437161)
#include<stdio.h>
#include<vector>
#define NM 100005
using namespace std;
vector <int> G[NM];
int S[NM],n1,n2,n,m,s,viz[NM],i,k,N,j;
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",&n1,&n2);
G[n1].push_back(n2);
}
for(i=1;i<=n;i++)
viz[i]=-1;
S[0]=s;
viz[s]=0;
for(i=0;i<=k;i++)
{
N=G[S[i]].size();
for(j=0;j<N;j++)
{
if(viz[ G[ S[i] ][j] ]<0)
{
S[++k]=G[ S[i] ][j];
viz[ G[ S[i] ][j] ]=viz[S[i]]+1;
}
}
}
for(i=1;i<=n;i++)
printf("%d ",viz[i]);
return 0;
}