Cod sursa(job #3368329)

Utilizator dimitrie_gheorgheGheorghe Dimitrie dimitrie_gheorghe Data 14 octombrie 2026 11:22:19
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <vector>
using namespace std;

int N, M, S, x, y, crt;
vector<vector<int>> lista;
vector<int> coada;
vector<int> cost;

int main() {
    ifstream input("bfs.in");

    input >> N >> M >> S;
    coada.insert(coada.begin(), S);
    for (int i = 0; i < N; i++) {
        cost.push_back(-1);
    }
    cost[S - 1] = 0;

    for (int i = 0; i < M; i++) {
        input >> x >> y;
        lista[x - 1].push_back(y);
    }

    input.close();

    for (int i = 0; i < N; i++) {
        crt = coada[0];
        coada.pop_back();
        
        for (int vecin: lista[crt - 1]) {
            coada.push_back(vecin);
            cost[vecin - 1] = cost[crt - 1] + 1;
        }
    }

    ofstream output("bfs.out");
    
    for (int i = 0; i < N; i++) {
        output << cost[i];
    }

    output.close();

    return 0;
}