Cod sursa(job #2573410)

Utilizator LeperBearMicu Alexandru LeperBear Data 5 martie 2020 17:32:15
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda r3capitusulare Marime 0.81 kb
#include <fstream>
#include <vector>
#define ios ios_base::sync_with_stdio(false);
#define nmax 100005

using namespace std;

ifstream cin("bfs.in");
ofstream cout("bfs.out");

vector<int> g[nmax];
int n,m,s,c[nmax],d[nmax],cap;

void citire(){
    cin>>n>>m>>s;
    for (int i=1;i<=m;i++){
        int x,y;
        cin>>x>>y;
        g[x].push_back(y);
    }
    for (int i=1;i<=n;i++) d[i]=-1;
}

void BFS(int ns){
    int i,j;
    c[++cap]=ns;
    d[ns]=0;
    for (i=1;i<=cap;i++){
        for (j=0;j<g[c[i]].size();j++)
            if (d[g[c[i]][j]]==-1){
                c[++cap]=g[c[i]][j];
                d[c[cap]]=d[c[i]]+1;
            }
    }
}

void afis(){
    for (int i=1;i<=n;i++) cout<<d[i]<<" ";
}

int main()
{
    citire();
    BFS(s);
    afis();
    return 0;
}