Cod sursa(job #1006048)

Utilizator radu2004GOLD radu radu2004 Data 6 octombrie 2013 10:50:22
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <stdio.h>

using namespace std;
 struct nod {int val;nod *urm;};

 int i,m,n,k,c[1005],x,y,use[1005],prim,ultim;
 FILE *f,*g;
nod *v[100001];
void add (nod *&p,int e)
{
    nod *t;
    t=new nod;
    t->val=e;
    t->urm=p;
    p=t;

}

int main()
{ f=fopen ("bfs.in","r");
 g=fopen ("bfs.out","w");
  fscanf (f,"%d%d%d",&n,&m,&k);
  for (i=1;i<=m;i++) { fscanf (f,"%d%d",&x,&y);
                       add (v[x],y);
                     }
 prim=1;ultim=1;
 c[prim]=k;
 nod *t;
 use [k]=1;
 while (prim<=ultim)
   { for (t=v[c[prim]];t!=NULL;t=t->urm) { if (use[t->val]==0)  { use[t->val]=use[c[prim]]+1;
                                                                   c[++ultim]=t->val;
                                                                 }

                                          }
             prim++;

   }
 for (i=1;i<=n;i++) if (use[i]==0) fprintf (g,"%d ",-1);
                         else fprintf (g,"%d ",use[i]-1);


    return 0;
}