Pagini recente » Cod sursa (job #1824750) | Cod sursa (job #2249174) | Cod sursa (job #1816849) | Cod sursa (job #1221747) | Cod sursa (job #702616)
Cod sursa(job #702616)
#include<stdio.h>
#include<vector>
using namespace std;
int n,m,k,ok[100002],c[100002],b[100002],i,j,l,r;
vector <int>a[100002];
void bfs();
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d %d %d",&n,&m,&k);
for(i=1;i<=m;i++)
{
scanf("%d %d",&l,&r);
a[l].push_back(r);
}
for(i=1;i<=n;i++)
b[i]=a[i].size();
c[0]=1;
c[1]=k;
ok[k]=1;
bfs();
for(i=1;i<=n;i++)
printf("%d ",ok[i]-1);
return 0;
}
void bfs()
{
for(i=1;i<=c[0];i++)
for(j=0;j<b[c[i]];j++)
if(ok[a[c[i]][j]] == 0)
{
c[0]++;
c[c[0]]=a[c[i]][j];
ok[c[c[0]]]=ok[c[i]]+1;
}
}