Cod sursa(job #3278889)

Utilizator RaduIC12Ciocirlan Radu-Ioan RaduIC12 Data 21 februarie 2025 11:00:27
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <queue>
#include <vector>

using namespace std;

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



int main()
{
    int n, m, start;
    fin >> n >> m >> start;

    vector< vector<int> > s(n+1);
    for(int i = 1; i <= m; ++i)
    {
        int x, y;
        fin >> x >> y;
        s[x].push_back(y);
    }

    vector<int> d(n+1, -1);
    queue <int> q;

    d[start] = 0;
    q.push(start);

    while(!q.empty())
    {
        int x = q.front();
        q.pop();

        for(auto y: s[x])
        {
            if( d[y] == -1)
            {
                q.push(y);
                d[y] = 1 + d[x];
            }
        }
    }

    for(int i = 1; i <= n; ++i)
    {
        fout << d[i] << ' ';
    }
    return 0;
}