Pagini recente » Cod sursa (job #3248469) | Cod sursa (job #49487) | Cod sursa (job #2886711) | Cod sursa (job #2883030) | Cod sursa (job #664163)
Cod sursa(job #664163)
#include<cstdio>
#include<vector>
using namespace std;
int n,m,s,i,x,y,cost[100010],cd[100010];
vector <int> G[100010];
int bsf(int nod)
{
int i,j;
cd[0]=1;
cost[nod]=0;
cd[1]=nod;
for(i=1;i<=cd[0];i++)
for(j=0;j<G[cd[i]].size();j++)
if(cost[G[cd[i]][j]]==-1)
{
cd[++cd[0]]=G[cd[i]][j];
cost[G[cd[i]][j]]=cost[cd[i]]+1;
}
}
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",&x,&y);
G[x].push_back(y);
}
for(i=1;i<=100010;i++)
cost[i]=-1;
bsf(s);
for(i=1;i<=n;i++)
printf("%d ",cost[i]);
return 0;
}