Pagini recente » Cod sursa (job #3169007) | Cod sursa (job #1719616) | Cod sursa (job #2220633) | Cod sursa (job #2656479) | Cod sursa (job #1396609)
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
long n,*a[100001],d[100001];
void parcurge(long s)
{long x,i,in,sf=in=0,q[100001];
d[s]=1;
q[0]=s;
while(in<=sf)
{x=q[in++];
for(i=1;i<=a[x][0];i++)
if(!d[a[x][i]])
{d[a[x][i]]=d[x]+1;
q[++sf]=a[x][i];
}
}
for(i=1;i<=n;i++)d[i]--;
}
int main()
{long i,s,m,v,b;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
fin>>n>>m>>s;
for(i=1;i<=n;i++)
{a[i]=(long*)realloc(a[i],sizeof(long));
a[i][0]=0;}
for(i=1;i<=m;i++)
{fin>>v>>b;
a[v][0]++;
a[v]=(long*)realloc(a[v],(a[v][0]+1)*sizeof(long));
a[v][a[v][0]]=b;
}
parcurge(s);
for(i=1;i<=n;i++)
fout<<d[i]<<' ';
}