Cod sursa(job #1676438)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 5 aprilie 2016 22:06:44
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
# include <fstream>
# include <vector>
# define DIM 100010
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
vector <int> Lista[DIM];
int Marcat[DIM],c[DIM],n,m,i,ns,x,y,u,p,cc,cv;
int main () {
    fin>>n>>m>>ns;
    for(i=1;i<=m;i++){
        fin>>x>>y;
        Lista[x].push_back(y);
    }
    u=1;
    p=1;
    c[1]=ns;
    Marcat[ns]=1;
    while(p<=u){
        cc=c[p];
        for(i=0;i<Lista[cc].size();i++){
            cv=Lista[cc][i];
            if(Marcat[cv]==0){
                Marcat[cv]=Marcat[cc]+1;
                c[++u]=cv;
            }
        }
        p++;
    }
    for(i=1;i<=n;i++)
        fout<<Marcat[i]-1<<" ";
    fout<<"\n";
    return 0;
}