Cod sursa(job #277296)

Utilizator frumushelRadu Lucian Andrei frumushel Data 11 martie 2009 17:03:24
Problema BFS - Parcurgere in latime Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream.h>
struct nod{ int inf;
	    nod *leg;
	   }*L[10000];

int i_c=1,sf_c=1,n,m,q,d[100];
short s[1000],c[1000];
void bf(int nodul)
{
 nod *p;
 s[nodul]=1;
 i_c=sf_c=1;
 c[i_c]=nodul;
 s[nodul]=1;
 d[nodul]=0;
 sf_c++;
 while(i_c<=sf_c)
 {
  for(p=L[c[i_c]];p!=NULL;p=p->leg)
  if(!s[p->inf])
   {
    s[p->inf]=1;
    c[sf_c]=p->inf;
    sf_c++;
    d[p->inf]=d[c[i_c]]+1;
   }
  i_c++;
 }

}


int main()
{int i,j,x,y;
nod *p;
 ifstream f("bfs.in");
 ofstream g("bfs.out");
 f>>n>>m>>q;
 for(i=1;i<=m;i++)
 {
  f>>x>>y;
  if(x!=y){
  p=new nod;
  p->inf=y;
  p->leg=L[x];
  L[x]=p;
  }
 }
for(i=1;i<=n;i++)
d[i]=-1;
bf(q);
for(i=1;i<=n;i++)
g<<d[i]<<" ";
}