Pagini recente » Cod sursa (job #425667) | Cod sursa (job #1084593) | Cod sursa (job #2325556) | Cod sursa (job #2148211) | Cod sursa (job #486696)
Cod sursa(job #486696)
#include<stdio.h>
#include<vector>
#include <string.h>
using namespace std;
vector <int> a[100005];
int s[100005],g[100005],cos[100005];
int main() {
memset(cos,-1,100005);
FILE *f,*gg;
int n,m,ss,j,i;
f=fopen("bfs.in","r");
gg=fopen("bfs.out","w");
fscanf(f,"%d%d%d",&n,&m,&ss);
int x,l,y;
for (i=1;i<=m;i++) {
fscanf(f,"%d%d",&x,&y);
a[x].push_back(y);
}
for (i=1;i<=n;i++) g[i]=a[i].size();
l=1;
cos[ss]=0;
s[l]=ss;
for (i=1;i<=l;i++)
for (j=0;j<g[s[i]];j++)
if (cos[a[s[i]][j]]==-1)
{
s[++l]=a[s[i]][j];
cos[s[l]]=cos[s[i]]+1;
}
for (i=1;i<=n;i++)
fprintf(gg,"%d ",cos[i]);
fclose(gg);
return 0;
}