Pagini recente » Cod sursa (job #221108) | Istoria paginii utilizator/hegedus | Cod sursa (job #1686885) | Cod sursa (job #1903791) | Cod sursa (job #261649)
Cod sursa(job #261649)
#include<fstream>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
struct nod{
int info;
nod *urm;
};
nod *prim[7501];
int i,n,m,x,y,s,cost[7501],c[7501];
void insert(int x, int y)
{ nod *p;
p=new nod;
p->info=y;
p->urm=prim[x];
prim[x]=p;
}
void bfs(int nd)
{ nod *q;
int p=1,u=1,x;
c[u]=nd;cost[c[u]]=0;
while(p<=u)
{ x=c[p];
for(q=prim[x];q;q=q->urm)
if(cost[q->info]==-1)
{ cost[q->info]=cost[x]+1;
c[++u]=q->info;
}
p++;
}
}
int main()
{ fin>>n>>m>>s;
for(i=1;i<=n;i++) cost[i]=-1;
for(i=1;i<=m;i++)
{ fin>>x>>y;
insert(x,y);
}
bfs(s);
for(i=1;i<=n;i++)
fout<<cost[i]<<' ';
return 0;
}