Cod sursa(job #3309297)

Utilizator raluca1977Raluca zanfir raluca1977 Data 3 septembrie 2025 14:25:25
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
vector<int> v[100001];
queue<int> q;
int drum[100001];
int n, m, s, x, y;

void citire_v(){

    for (int i = 1; i <= m; i++){

        fin >> x >> y;
        v[x].push_back(y);
    }
}

void BFS(){

    q.push(s);
    drum[s] = 1;

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

        for (int i = 0; i < v[nod].size(); i++){

            int vecin = v[nod][i];

            if (drum[vecin] == 0){
                drum[vecin] = drum[nod] + 1;

                q.push(vecin);
            }
        }
    }
}

void afisare(){

    for (int i = 1; i <= n; i++){

        fout << drum[i] - 1 << " ";
     }

}

int main(){

    fin >> n >> m >> s;

    citire_v();

    BFS();

    afisare();

    return 0;
}