Cod sursa(job #3005160)

Utilizator ioana3317ioanapopescu ioana3317 Data 16 martie 2023 19:52:31
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int N=100000 + 2;
int n, m, s, v[N];
vector <int> vec[N];

void bfs(int nd, int cnt){
    v[nd] = cnt;
    vector <int> la;

    for(auto i: vec[nd] ){
        if(v[i] == 0){
            v[i] = cnt;
            la.push_back(i);
        }
    }

    for(auto i: la){
        bfs(i, cnt+1);
    }
}

int main()
{
    in >> n >> m >> s;
    for(int i=1; i<=m; i++){
        int x, y;
        in >> x >> y;
        vec[x].push_back(y);
    }

    bfs(s, 1);

    for(int i=1; i<=n; i++){
        out<< v[i] - 1 << " ";
    }
    return 0;
}