Pagini recente » Cod sursa (job #1943363) | Cod sursa (job #1673479) | Cod sursa (job #832074) | Cod sursa (job #1639109) | Cod sursa (job #2220752)
#include<iostream>
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
long a[100001][100001]={0},n,prim=1,ultim=1,c[100001],i,x,y,v[100001]={0},varf,m,s[100001],u;
void bfs(){
long k;
while(prim<=ultim)
{varf=c[prim];
for(k=1;k<=n;k++)
if(a[varf][k]&&!v[k]) {ultim++;c[ultim]=k;v[k]=1;s[k]=s[varf]+1;}
prim++;}}
int main(){
f>>n>>m>>u;
for(i=1;i<=m;i++) {f>>x>>y;a[x][y]=1;}
for(i=1;i<=n;i++) s[i]=-1;
c[prim]=u;v[u]=1;s[u]=0;
bfs();
for(i=1;i<=n;i++) g<<s[i]<<" ";
return 0;}