Pagini recente » Cod sursa (job #2849845) | Cod sursa (job #2615049) | Cod sursa (job #10025) | Cod sursa (job #2235604) | Cod sursa (job #411229)
Cod sursa(job #411229)
#include<iostream.h>
#include<fstream.h>
using namespace std;
struct nod{ int inf;
nod *leg;
}*l[100000];
int d[100000];
void bf(int nodul)
{
nod *p;
int ic,sfc,s[100000],c[100000];
ic=sfc=0;
s[nodul]=1;
c[ic]=nodul;
d[nodul]=0;
while(ic<=sfc)
{
for(p=l[c[ic]];p!=NULL;p=p->leg)
if(!s[p->inf])
{
s[p->inf]=1;
sfc++;
c[sfc]=p->inf;
d[p->inf]=d[c[ic]]+1;
}
ic++;
}
}
int main()
{
int n,m,s,x,y,i;
nod *p;
ifstream f("bfs.in");
ofstream g("bfs.out");
f>>n>>m>>s;
for(i=1;i<=m;i++)
{
f>>x>>y;
p=new nod;
if(y!=x)
{
p->inf=y;
p->leg=l[x];
l[x]=p;
}
}
for(i=1;i<=n;i++)
d[i]=-1;
bf(s);
for(i=1;i<=n;i++)
g<<d[i]<<" ";
return 0;
}