Cod sursa(job #3328831)

Utilizator mateinicooNicolau Matei mateinicoo Data 10 decembrie 2025 18:19:09
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>


using namespace std;

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

vector<int> vec[100005];

int dist[100005];
int n, m, nod;

void bfs(int v){
    queue<int> q;
    q.push(v);
    dist[v]=0;
    while(!q.empty()){
        int a=q.front();
            for(int vecin: vec[a])  
                if(dist[vecin]==-1){  
                dist[vecin] = dist[a]+1;
                q.push(vecin);}
        
        q.pop();
    }

}

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

    for(int i=1; i<=n; i++)
        dist[i]=-1;

    bfs(nod);

    for(int i=1; i<=n; i++)
        fout<< dist[i]<<" ";

    return 0;
}