Pagini recente » Cod sursa (job #607320) | Cod sursa (job #1874080) | Cod sursa (job #152864) | Cod sursa (job #242674) | Cod sursa (job #291433)
Cod sursa(job #291433)
#include<stdio.h>
int lg[100];
int p[100];
struct lista{
int inf;
lista*adr;};
lista*v[100];
void bfs(int x){
p[x]=1;
for (lista*aux=v[x];aux!=NULL;aux=aux->adr){
if (p[aux->inf]!=1){
if (lg[aux->inf]==-1)
lg[aux->inf]=1;
else
lg[aux->inf]++;
}}
for (lista*aux=v[x];aux!=NULL;aux=aux->adr){
if (p[aux->inf]!=1)
bfs(aux->inf);
}
}
int main (){
freopen ("bfs.in","r",stdin);
freopen ("bfs.out","w",stdout);
int n,m,s;
scanf ("%d %d %d",&n,&m,&s);
int x,y;
for (int i = 1;i<=m;i++){
scanf ("%d %d",&x,&y);
if (v[x]==NULL)
{
lista*aux = new lista;
aux->inf = y;
aux->adr=NULL;
v[x]=aux;
}
else
{ lista*aux = new lista;
aux = v[x];
for (;aux->adr!=NULL;aux=aux->adr);
lista *aux2 = new lista;
aux2->inf = y;
aux2->adr=NULL;
aux->adr=aux2;
}
}
for (int i=1;i<=100;i++)
lg[i]=-1;
lg[s]=0;
p[s]=1;
bfs(s);
printf ("%d",v[5]->inf);
for (int i=1;i<=n;i++)
printf ("%d ",lg[i]);
return 0;
}