Pagini recente » Cod sursa (job #571061) | Cod sursa (job #2305652) | Cod sursa (job #774035) | Cod sursa (job #1954373) | Cod sursa (job #1128922)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");
int n,m,s,i;
int a[10000][10000],vizitat[10000];
int lista_noduri[1000],nr;
void BFS(int X)
{
int nr;
nr=1;
lista_noduri[nr]=X;
vizitat[X]=1;
int i;
for(i=1; i<=nr; i++)
{
int Nod=lista_noduri[i];
int j;
for(j=1; j<=n; j++)
if(a[Nod][j]==1)
if(vizitat[j]==0)
{
nr++;
lista_noduri[nr]=j;
vizitat[j]=vizitat[Nod]+1;
}
}
}
int main()
{
int nr_comp=0;
f>>n>>m>>s;
for(i=1; i<=m; i++)
{
int x,y;
f>>x>>y;
if(x!=y)a[x][y]=1;
}
BFS(s);
for(i=1; i<=n; i++)
g<<vizitat[i]-1<<" ";
//g<<nr_comp;
return 0;
}