Cod sursa(job #3368438)

Utilizator yolanqaStefanescu Yolanda - Gabriela yolanqa Data 14 octombrie 2026 15:24:20
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <queue>


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

std::vector<int> parcurs;
std::vector<std::vector<int>>graf;

void bfs(int node){

    std::queue<int> q;

    q.push(node);
    parcurs[node] = 0;


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

        for (int i : graf[actual]) {
            if(parcurs[i]==-1){
                parcurs[i]=parcurs[actual]+1;
                q.push(i);
            }
        }
    }
}

    int main(){


        int n, m, start;
        if (!(fin >> n >> m>>start))
            return 0;

        graf.resize(n + 1);
        parcurs.resize(n + 1, -1);

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

        bfs(start);
        
        

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