Pagini recente » Cod sursa (job #1043288) | Cod sursa (job #2272876) | Cod sursa (job #1726141) | Cod sursa (job #2474533) | Cod sursa (job #1113466)
#include <fstream>
using namespace std;
FILE*fin;
ofstream fout("bfs.out");
int i,m,n,s,viz[100001],x,y,c[100001];
struct element
{
int v;
element *adr;
}*l[100001],*q;
void bfs(int k)
{
int p,u,w;
element *i;
p=u=1; c[p]=k;
viz[k]=1;
while(p<=u)
{
w=c[p];
p++;
for(i=l[w];i!=NULL;i=i->adr)
if(viz[i->v]!=0)
{
u++;
c[u]=i->v;
viz[i->v]=viz[w]+1;
}
}
}
int main()
{
fin=fopen("bfs.in","r");
fscanf(fin,"%d%d%d",&n,&m,&s);
for(i=1;i<=n;i++)
l[i]=NULL;
for(i=1;i<=m;i++)
{
fscanf(fin,"%d%d",&x,&y);
q=new element;
q->v=y;
q->adr=l[x];
l[x]=q;
}
bfs(s);
for(i=1;i<=n;i++)
fout<<viz[i]-1<<" ";
fout.close();
return 0;
}