Pagini recente » Cod sursa (job #3168650) | Cod sursa (job #968130) | Cod sursa (job #804188) | Cod sursa (job #2145363) | Cod sursa (job #874427)
Cod sursa(job #874427)
#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[3][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;
viz[1][st]=1;
while(cs<=cd)
{ok=0;
while(l[st])
{
if(viz[1][l[st]->info]==0)
{co[cd++]=l[st]->info;
viz[2][l[st]->info]=viz[2][st]+1;
viz[1][l[st]->info]=1;
ok=1;
}
l[st]=l[st]->next;
}
st=co[cs++];
}
for(i=1;i<=n;++i)
fout<<viz[2][i]<<" ";
return 0;
}