Pagini recente » Cod sursa (job #1148374) | Cod sursa (job #2269092) | Cod sursa (job #3269135) | Cod sursa (job #249391) | Cod sursa (job #276802)
Cod sursa(job #276802)
#include<stdio.h>
int N,M,S,viz[1001];
int st,sf;
int n[1000];
int coada[1000];
int a[1000][1000];
void citire()
{
int i,x,y;
FILE *in = fopen("bfs.in","rt");
fscanf(in,"%d %d %d",&N,&M,&S);
for(i=1;i<=N;i++) n[i]=-1;
for(i=1;i<=M;i++)
{
fscanf(in,"%d %d",&x,&y);
a[x][y]=a[y][x]=1;
}
fclose(in);
}
void bf(int S)
{
st=sf=1;
niv=0;
n[S]=niv;
viz[S]=1;
coada[st]=S;
sf++;
while(st<sf)
{
niv++
for(i=1;i<=N;i++)
if(a[coada[st]][i]&&!viz[i])
{
viz[i]=1;
n[i]=niv;
}
st++;
}
}
int main()
{
int i,nr=0;
citire();
bfs(S);
FILE *out=fopen("bfs.out","wt");
for(i=1;i<=N;i++)
fprintf(out,"%d ",n[i]);
fclose(out);
return 0;
}