Pagini recente » Cod sursa (job #3143705) | Cod sursa (job #219134) | Cod sursa (job #1914983) | Cod sursa (job #1924915) | Cod sursa (job #874421)
Cod sursa(job #874421)
#include <fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
struct nod
{
int info;
nod *next;
};
nod *p,*l[100001];
int x,y,i,j,n,st,viz[100001],cs,cd,co[100001],m,nr,ok;
int main()
{
fin>>n>>m>>st;
for(i=1;i<=m;++i)
{
fin>>x>>y;
p=new nod;
p->next=l[x];
p->info=y;
l[x]=p;
}
cs=1;
cd=1;
nr=1;
viz[st]=nr;
nr++;
while(cs<=cd)
{ok=0;
while(l[st])
{
ok=1;
if(viz[l[st]->info]==0)
{co[cd++]=l[st]->info;
viz[l[st]->info]=nr;
}
l[st]=l[st]->next;
}
if(ok==1)
nr++;
st=co[cs++];
}
for(i=1;i<=n;++i)
fout<<viz[i]-1<<" ";
return 0;
}