Pagini recente » Cod sursa (job #576704) | Cod sursa (job #808127) | Cod sursa (job #327395) | Cod sursa (job #3200758) | Cod sursa (job #300998)
Cod sursa(job #300998)
#include<cstdio>
using namespace std;
struct graf
{
int a[10010],b;
};
graf x[10010];
int c[10010],viz[10010],cost[10010];
int main()
{
int n,m,s,i,u,y,j;
FILE *f=fopen("bfs.in","r");
FILE *g=fopen("bfs.out","w");
fscanf(f,"%d %d %d ",&n,&m,&s);
for(i=1;i<=m;i++)
{
fscanf(f,"%d %d ",&u,&y);
x[u].b++;
x[u].a[x[u].b]=y;
}
c[1]=s;
i=1;
cost[s]=0;
u=1;
viz[s]=1;
while (i<=u)
{
for (j=1;j<=x[c[i]].b;j++)
{
if (viz[x[c[i]].a[j]]==0)
{
viz[x[c[i]].a[j]]=1;
cost[x[c[i]].a[j]]=cost[c[i]]+1;
u++;
c[u]=x[c[i]].a[j];
}
}
i++;
}
for (i=1;i<=n;i++)
if(viz[i]==0)
fprintf(g,"%d ",-1);
else fprintf(g,"%d ",cost[i]);
return 0;
}