Cod sursa(job #3318747)

Utilizator Mirc100Mircea Octavian Mirc100 Data 28 octombrie 2025 16:52:20
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

int main() {

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

    int noduri, muchii, nod_start;
    int x, y, current;
    vector<vector<int>> lista_vecini;

    fin >> noduri >> muchii >> nod_start;

    lista_vecini.resize(noduri+1);

    for(int i=0; i< muchii; i++) {
        fin >> x >> y;
        lista_vecini[x].push_back(y);
    }

    vector<int> dist(noduri+1, -1), viz(noduri+1, 0);
    queue<int> coada;

    coada.push(nod_start);
    dist[nod_start] = 0;
    viz[nod_start] = 1;
    while(coada.size() > 0) {
        current = coada.front();
        coada.pop();
        for(auto i: lista_vecini[current]) {
            if(viz[i] == 0) {
                 coada.push(i);
                 viz[i] = 1;
                 dist[i] = dist[current] + 1;
            }
        }
    }

    for(int i=1; i<noduri+1; i++) {
        fout << dist[i] << " ";
    }

    return 0;
}