Pagini recente » Cod sursa (job #468154) | Cod sursa (job #2627973) | Cod sursa (job #537061) | Cod sursa (job #2693358) | Cod sursa (job #2693511)
#include <iostream>
#include <fstream>
using namespace std;
int a[100][100],n,m,distanta[100],S;
void citire()
{
ifstream f("bfs.in");
f>>n>>m>>S;
int x,y;
for(int k=1;k<=m;k++)
{
f>>x>>y;
a[x][y]=1;
}
int i,j;
for(i=1;i<=n;i++)
distanta[i]=-1;
}
void BFS(int v)
{
int inc=1,sf=1,coada[100],j;
coada[inc]=v;
distanta[v]=0;
while(inc<=sf)
{
v=coada[inc];
for(j=1;j<=n;j++)
if(a[v][j]&&distanta[j]==-1)
{
coada[++sf]=j;
distanta[j]=distanta[v]+1;
}
inc++;
}
}
int main()
{
citire();
int i;
BFS(S);
ofstream g("bfs.out");
for(i=1;i<=n;i++)
g<<distanta[i]<<" ";
return 0;
}