Cod sursa(job #2795786)

Utilizator HatersMcCristian Ioan HatersMc Data 6 noiembrie 2021 23:29:35
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <vector>
#include <deque>

using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");

int n, m, s;


void bfs(int start, vector<vector<int> > mat) {
    deque<int> coada;
    vector<int> viz(n+1 , -1);
    viz[start] = 0;
    coada.push_back(start);
    while (coada.empty() == false) {
        for (auto x:mat[coada[0]]) {
            if (viz[x]==-1) {
                coada.push_back(x);
                viz[x] = viz[coada[0]]+1;
            }
        }
        coada.pop_front();
    }
    for(int i = 1 ; i < n+1 ; ++i)

        g<<viz[i]<<" ";

}

int main() {

    f >> n >> m >> s;
    vector<vector<int> > mat(n + 1);
    for (int i = 0; i < m; ++i) {
        int a, b;
        f >> a >> b;
        mat[a].push_back(b);
    }
    bfs(s, mat);


    return 0;
}