Cod sursa(job #3370929)

Utilizator mar_parapeanumaria parapeanu mar_parapeanu Data 27 octombrie 2026 21:51:32
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <vector>
#include <queue>

std::ifstream fin("bfs.in");
std::ofstream fout("bfs.out");

int main() {
    int n, m, s, x, y, crt;
    fin >> n >> m >> s;
    std::queue<int> coada;
    std::vector<int> dist(n+1, -1);
    std::vector<std::vector<int>> graph(n+1);
    while (fin >> x >> y) {
        graph[x].push_back(y);
    }
    coada.push(s);
    dist[s] = 0;
    while (!coada.empty()) {
        crt = coada.front();
        coada.pop();
        for (auto vecin : graph[crt]) {
            if (dist[vecin] < 0 ) {
                coada.push(vecin);
                dist[vecin] = dist[crt] + 1;
            }
        }
    }

    // for (auto l:graph) {
    //     for (auto x : l)
    //         std::cout << x << " ";
    //     std::cout << std::endl;
    // }
    for (int i = 1; i <= n; i++)
        fout << dist[i] << " ";

}