Cod sursa(job #3142997)

Utilizator vozian.anghelinaAnghelina Vozian vozian.anghelina Data 26 iulie 2023 17:40:46
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>
using namespace std;

int n,m,x,y,s, V[100100], C[100100], K[100100];
vector<int> G[100100];

int main(){
    ifstream cin("bfs.in");
    ofstream cout("bfs.out");
    cin >> n >> m >> s;
    for(int i=1; i<=m; i++){
        cin >> x >> y;
        G[x].push_back(y);
    }

    int l=0, r=0, e=0, s1=s, op;
    K[s] = 0;
    C[0] = s;
    V[s] = 1;
    while(l<=r){
        s = C[l++];
        e = 0;
        for(int i=0; i<G[s].size(); i++){
            if(V[G[s][i]] != 1){
                C[++r] = G[s][i];
                V[G[s][i]] = 1; 
                K[G[s][i]] = K[s]+1;
                // cout << op << ' ' << G[s][i] << endl;
                e = 1;
            }
        }
    }

    for(int i=1; i<=n; i++){
        if(K[i] > 0){
            cout << K[i] << ' ';
        } else if(i == s1){
            cout << 0 << ' ';
        } else {
            cout << -1 << ' ';
        }
    }
}