Cod sursa(job #3369767)

Utilizator hazicatalinHazi Catalin hazicatalin Data 22 octombrie 2026 08:50:59
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include<iostream>
#include<vector>
#include<fstream>
#include<queue>
using namespace std;

ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,s;

vector<int> L[100001];
int d[100001];

void bfs(int s){
    for(int i =1;i<=n;i++){
        d[i] = -1;//d[i] distanta minima de la s la i
    }
    d[s] = 0;
    queue<int> q;
    q.push(s);
    while(q.empty()== false){
        int node =q.front();
        q.pop();
        for(auto vec : L[node]){
            if(d[vec] == -1){
                d[vec] = d[node] +1;
                q.push(vec);
            }
        }
    }


}


int main(){
    fin >> n >>m>>s;
    for(int i=1; i<=m;i++){
        int a,b;
        fin>>a>>b;
        L[a].push_back(b);
        //L[b].push_back(a);

    }
    bfs(s);
    for(int i=1;i<=n;i++) fout<< d[i]<<' ';
    return 0;
}