Pagini recente » Cod sursa (job #785044) | Cod sursa (job #724844) | Cod sursa (job #1732443) | Cod sursa (job #1175466) | Cod sursa (job #837039)
Cod sursa(job #837039)
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int i,j,a[10000][10000],r,x,y,vs,vd,k,n,m,viz[100000],cd[100000],nr;
int main()
{fin>>n>>m>>r;
for(i=1;i<=m;++i)
{
fin>>x>>y;
if(x!=y)
a[x][y]=1;
}
k=r;
do
{
for(i=1;i<=n;++i)
if(a[k][i]!=0&&viz[i]==0&&i!=r)
{cd[++vd]=i;
viz[i]=viz[k]+1;
}
k=cd[++vs];
}while(vd>=vs);
for(i=1;i<=n;++i)
if(viz[i]==0&&i!=r)
fout<<-1<<" ";
else
if(viz[i]==1&&i==r)
fout<<0<<" ";
else
fout<<viz[i]<<" ";
return 0;
}