Cod sursa(job #3361557)

Utilizator Tudor_TapeTapu Tudor Cristian Tudor_Tape Data 25 iulie 2026 16:15:31
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
using namespace std;

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

struct point {
    vector <int> V;
};

point X[100005];
int R[100005];

void lee(int poz, int val) {
    R[poz]=val;
    for (int j=0; j<X[poz].V.size(); j++) {
        if (R[X[poz].V[j]]>val+1) lee(X[poz].V[j], val+1);
    }
}

int main() {
    int n, m, x;
    cin>>n>>m>>x;
    for (int i=1; i<=m; i++) {
        int a, b;
        cin>>a>>b;
        X[a].V.push_back(b);
    }
    for (int i=1; i<=n; i++) R[i]=2000000000;
    lee(x, 1);
    for (int i=1; i<=n; i++) {
        if (R[i]!=2000000000) cout<<R[i]-1<<" ";
        else cout<<"-1 ";
    }
}