Pagini recente » Cod sursa (job #920717) | Cod sursa (job #3283705) | Cod sursa (job #2031669) | Cod sursa (job #1451132) | Cod sursa (job #256625)
Cod sursa(job #256625)
#include<stdio.h>
#include<vector>
#define NMAX 100001
using namespace std;
vector <int> a[NMAX];
int G[NMAX],n,m,cost[NMAX];
int main()
{
int i,k,pr,ul,c[NMAX],s,x,y;
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",&x,&y);
a[x].push_back(y);
}
for(i=1;i<=n;i++)
{
G[i]=a[i].size();
cost[i]=-1;
}
/*for(i=1;i<=n;i++)
{
for(int j=0;j<a[i].size();j++)
printf("%d ",a[i][j]);
printf("\n");}*/
c[1]=s;
pr=ul=1;
cost[s]=0;
while(pr<=ul)
{
k=c[pr++];
for(i=1;i<G[k];i++)
if(cost[a[k][i]]==-1)
{
c[++ul]=a[k][i];
cost[a[k][i]]=cost[k]+1;
}
}
for(i=1;i<=n;i++)
printf("%d ",cost[i]);
return 0;}