Pagini recente » Cod sursa (job #201686) | Cod sursa (job #1830247) | Cod sursa (job #1694643) | Cod sursa (job #2055055) | Cod sursa (job #540056)
Cod sursa(job #540056)
#include<fstream>
using namespace std;
typedef
struct nod
{
int nr;
nod*urm;
}*Pnod;
int n,m,s,i,j,c[100000],viz[100000],prim,utlim,d[100000];
Pnod l[100000];
void bfs(int start)
{
int prim=1,ultim=1;
viz[start]=1;
c[prim]=start;
Pnod p=new (nod);
while(prim<=ultim)
{
p=l[c[prim]];
while(p)
{
if(viz[p->nr]==0)
{
c[++ultim]=p->nr;
viz[p->nr]=1;
d[p->nr]=d[c[prim]]+1;
}
p=p->urm;
}
prim++;
}
}
int main()
{
ifstream fin("bfs.in");
fin>>n>>m>>s;
Pnod p;
while(fin>>i>>j)
{
p=new (nod);
if(i!=j)
{
p->nr=j;
p->urm=l[i];
l[i]=p;
}
}
fin.close();
ofstream fout("bfs.out");
bfs(s);
for(i=1;i<=n;i++)
if(viz[i]!=0)
fout<<d[i]<<" ";
else fout<<-1<<" ";
fout<<'\n';
fout.close();
return 0;
}