Cod sursa(job #278196)

Utilizator magda_ursuleanUrsulean Magda magda_ursulean Data 12 martie 2009 10:06:09
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
//bfs
#include <fstream.h>
#include <iostream.h>
//#include <conio.h>
#define NMax 1000


int m,n,s,u,a[NMax][NMax],viz[NMax],coada[3*NMax];

void citire()
{
  ifstream fin("bfs.in");
  int x,y;
  fin>>n>>m>>s;
  for(int i1=1; i1<=m; i1++) { fin>>x>>y;
			    a[x][y]=/*a[y][x]=*/1;
			    viz[i1]=0;
			  }
  fin.close();
}


void bfs(int i2)
{
  int j;
  for(j=1; j<=n; j++)
    if((a[coada[i2]][j]==1) && (viz[j]==0))
       { u++;
	 coada[u]=j;
	 viz[j]=1;
       }
  if (i2<=u) bfs(i2+1);

}


int main()
{ ofstream fout("bfs.out");
  citire();
  viz[s]=1;
  coada[1]=s;
  u=1;
  bfs(s);
  for(int i3=1; i3<=n; i3++)// cout<<coada[i]<<" ";
    if (coada[i3]==0) coada[i3]=-1;
  for(i3=1; i3<=n; i3++) fout<<coada[i3]<<" ";
 // getche();
 fout.close();
  return 0;

}