Cod sursa(job #3314216)

Utilizator PatrikKev75Szucs Patrik - Kevin PatrikKev75 Data 8 octombrie 2025 22:07:39
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
// https://www.infoarena.ro/problema/bfs - Szucs Patrik - Kevin
#include <fstream>
#include <queue>
#include <vector>

int main()
{
    int n, m, s;

    std::ifstream in("bfs.in");
    in >> n >> m >> s;

    std::vector<std::vector<int>> graf(n + 1);
    for (int i = 0; i < m; i++)
    {
        int a, b;
        in >> a >> b;

        graf[a].push_back(b);
    }
    in.close();

    std::queue<int> sor;
    std::vector<int> indx(n + 1, -1);

    sor.push(s);
    indx[s] = 0;

    while (!sor.empty())
    {
        int curr = sor.front(); // utoljara berakott elem - 1
        sor.pop();
        for (int i : graf[curr])
            if (indx[i] == -1)
            {
                indx[i] = indx[curr] + 1;
                sor.push(i);
            }
    }

    std::ofstream out("bfs.out");
    for (auto &elem : indx)
        out << elem << " ";

    out.close();
    return 0;
}