Pagini recente » Cod sursa (job #2119664) | Cod sursa (job #1594824) | Cod sursa (job #1369379) | Cod sursa (job #1257315) | Cod sursa (job #1855373)
#include<fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
struct nod
{
int vecin;
nod *adr;
};
nod *p,*L[100002];
int n,m,s,x,y,i,viz[100002];
void BFS(int vfstart, int viz[], nod *L[])
{
int coada[100002],ul,pr;
viz[vfstart]=1;
coada[1]=vfstart;
ul=1;
pr=1;
while(pr<=ul)
{
for(p=L[coada[pr]];p!=0;p=p->adr)
{
if(viz[p->vecin]==0)
{
viz[p->vecin]=1+viz[coada[pr]];
ul++;
coada[ul]=p->vecin;
}
}
pr++;
}
}
int main()
{
fin>>n>>m>>s;
for(i=1;i<=m;i++)
{
fin>>x>>y;
p=new nod;
p->vecin=y;
p->adr=L[x];
L[x]=p;
}
BFS(s,viz,L);
for(i=1;i<=n;i++)
{
fout<<viz[i]-1<<" ";
}
fin.close();
fout.close();
return 0;
}