Cod sursa(job #2571261)

Utilizator Radw0410Matei Radu Radw0410 Data 4 martie 2020 21:58:49
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <bitset>
#include <queue>

using namespace std;

const int N = 1e5+5;

vector<int> listaAdiacenta[N];

int n;
int m;
int s;

void readVar(){
    int x,y;
    ifstream fin("bfs.in");
    fin >> n >> m >> s;
    for(int i=0; i<m; i++){
        fin >> x >> y;
        listaAdiacenta[x].push_back(y);
    }
}

void BFS(int s){
    ofstream fout("bfs.out");
    vector<int> distanta(n+5, -1);
    distanta[s]=0;
    queue<int> coada;
    coada.push(s);

    while(coada.size()){
        int u = coada.front();

        for(auto v : listaAdiacenta[u]){
            if(distanta[v]!=-1)
                continue;
            distanta[v]=distanta[u]+1;
            coada.push(v);
        }

        coada.pop();
    }

    for(int i=1;i<=n;i++){
        fout<<distanta[i]<<" ";
    }
}

int main()
{
    readVar();
    BFS(s);
    return 0;
}