Cod sursa(job #3316982)

Utilizator D4R1U5Sava Darius D4R1U5 Data 21 octombrie 2025 16:42:03
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <queue>
#include <vector>

using namespace std;

int n,m,nod;
vector<int> v[100005];
int viz[100005], d[100005];
queue<int> q;

void BFS(int x){
    viz[x]=1;
    d[x]=0;
    q.push(x);
    while (q.empty()==false){
        int nod=q.front();
        q.pop();
        for (auto &it:v[nod]){
            if (viz[it]==0){
                viz[it]=1;
                d[it]=d[nod]+1;
                q.push(it);
            }
        }
    }
}

int main(){
    cin>>n>>m;
    cin>>nod;
    for (int i=1;i<=m;i++){
        int nod1, nod2;
        cin>>nod1>>nod2;
        v[nod1].push_back(nod2);
    }

    for (int i=1;i<=n;i++){
        viz[i]=0;
        d[i]=-1;
    }

    BFS(nod);

    for (int i=1;i<=n;i++){
        cout<<d[i]<<" ";
    }
    return 0;
}