Pagini recente » Runda 4 preONI 2007 | Cod sursa (job #1669892) | Cod sursa (job #2023297) | Cod sursa (job #493397) | Cod sursa (job #864048)
Cod sursa(job #864048)
#include<cstdio>
#include<bitset>
#include<queue>
using namespace std;
int viz[10001],n,i,j,m,a,x,y;
bitset <10001>A[10001];
queue <int> q;
void lee(int a)
{
int k,x;
q.push(a); viz[a]=1;
while(!q.empty())
{
x=q.front();
for(k=1;k<=n;++k)
{
if(A[x][k]==1 && viz[k]==0)
{
q.push(k);
viz[k]=viz[x]+1;
}
}
q.pop();
}
}
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d%d%d",&n,&m,&a);
for(i=1;i<=m;++i)
{
scanf("%d%d",&x,&y);
A[x][y]=1;
}
lee(a);
for (i=1;i<=n;i++)
printf("%d ",viz[i]-1);
printf("\n");
return 0;
}