Cod sursa(job #1098654)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 4 februarie 2014 23:27:33
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include<fstream>
using namespace std;
typedef struct celula {
          int nod;
          celula *next;
          }*lista;
lista graf[100005],v;
int i,n,cap,coada,deq[100005],drum[100005],s,x,y,m;

int main(void) {
    ifstream fin("bfs.in");
    ofstream fout("bfs.out");
    
    fin>>n>>m>>s;
    for (i=1; i<=m; ++i) {
         fin>>x>>y;
         v=new celula; v->nod=y; v->next=graf[x]; graf[x]=v;
         }
    
    drum[s]=1;
    cap=coada=1;
    deq[coada]=s;
    while (cap<=coada) {
          int nodc=deq[cap];
          for (lista p=graf[nodc]; p; p=p->next)
           if (drum[p->nod]==0) {
                                drum[p->nod]=drum[nodc]+1;
                                ++coada;
                                deq[coada]=p->nod;
                                }
          ++cap;
          }
    for (i=1; i<=n; ++i) fout<<drum[i]-1<<" ";
 return(0);
}