Pagini recente » Cod sursa (job #468956) | Cod sursa (job #3135493) | Cod sursa (job #2941317) | Cod sursa (job #1908194) | Cod sursa (job #1392522)
#include <fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
struct graf{int x,y;}v[100001];
int n,s,m,C[100001],viz[100001],prim,ultim,p;
void citire()
{f>>n>>m>>s;
for(int i=1;i<=m;i++)f>>v[i].x>>v[i].y;
}
void bfs()
{
C[1]=s;prim=ultim=1;viz[s]=1;
while(prim<=ultim)
{p=C[prim++];
for(int i=1;i<=m;i++)
if(v[i].x==p&&viz[v[i].y]==0&&v[i].y!=p){C[++ultim]=v[i].y;viz[v[i].y]=viz[p]+1;}
}
}
int main()
{
citire();
bfs();
for(int i=1;i<=n;i++)g<<viz[i]-1<<" ";
return 0;
}