Cod sursa(job #636461)

Utilizator KaLoo1992Andrei Madalin KaLoo1992 Data 19 noiembrie 2011 20:30:33
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include<fstream.h>
#include<vector>
fstream f("bfs.in",ios::in);
fstream g("bfs.out",ios::out);
vector<int> vei[100];
int list[100],li[100],sel[100],el_act,ult_el,nr=0,m=0;
void bf(int x){
     int nod;
     list[1]=x;
     sel[x]=1;
     el_act=1;ult_el=1;
     li[x]=nr;
     while(el_act<=ult_el){
        nod=list[el_act];nr++;
        for(int i=0;i<vecini[nod].size();i++){m++;
           if(!sel[vecini[nod][i]]){
              list[++ult_el]=vecini[nod][i];
              
              li[vecini[nod][i]]=nr;
              sel[vecini[nod][i]]=1;
           }}
        if(m==vecini[nod].size()) nr--;
        el_act++;
     }
}
void init(int n){
      for(int i=1;i<=n;i++)
        li[i]=-1;
}
int main(){
    int nr;
    int n,m,s,x,y;
    f>>n,m,s;
    for(int i=0;i<m;i++){
      f>>x>>y;
      vecini[x].push_back(y);
    }
        init(n);
       bf(s);
       for(int i=1;i<=n;i++){
        g<<li[i]<<" ";
       }
    return 0;
}