Cod sursa(job #3316020)

Utilizator sweetcitrusflowerHancu Alexandru-Andrei sweetcitrusflower Data 16 octombrie 2025 21:29:16
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("BFS.in");
ofstream fout("BFS.out");

int main(){
    int N, M, S;
    fin >> N >> M >> S;
    vector<vector<int>> adiac(N + 1);
    for(int i = 0; i < M; i++)
    {
        int x, y;
        fin >> x >> y;
        adiac[x].push_back(y);
    }
    
    vector<int> d(N + 1, -1);
    deque<int> q;

    for(d[S] = 0, q.push_back(S); !q.empty();)
    {
        int vf = q.front();
        q.pop_front();
        for(int vecin : adiac[vf])
            if(d[vecin] == -1)
            {
                d[vecin] = d[vf] + 1;
                q.push_back(vecin);
            }
    }
    for(int i = 1; i <= N; i++)
        fout << d[i] << ' ';
    return 0;
}