Pagini recente » Cod sursa (job #534071) | Cod sursa (job #1685897) | Cod sursa (job #2278545) | Cod sursa (job #3208121) | Cod sursa (job #2019602)
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,x,y,k,a[100001][100001],c[100001],i,j,v[100001];
int p,u,nc,d[101];
void citire()
{f>>n>>m>>k;
int q,w;
for(i=1;i<=m;i++)
{f>>q>>w;
a[q][w]=1;
}
}
int bfs(int np)
{
p=u=1;
v[np]=1;
c[1]=np;
while(p<=u)
{nc=c[p];
for(i=1;i<=n;i++)
if(a[nc][i]==1&&v[i]==0){c[++u]=i;d[i]=d[nc]+1;
v[i]=1;}
p++;
}
return 0;}
int main()
{ citire();
bfs(k);
for(i=1;i<=n;i++)
if(v[i]==0)d[i]=-1;
for(i=1;i<=n;i++)g<<d[i]<<" ";
return 0;
}