Cod sursa(job #3265735)

Utilizator MrPuzzleDespa Fabian Stefan MrPuzzle Data 2 ianuarie 2025 20:20:00
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <bits/stdc++.h>

#define INF 99999999

#define DIM 100000

using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");

//ifstream f("filesmodel.in");
//ofstream g("filesmodel.out");

int n,m;
int s;
int x,y;
vector <int> L[DIM+5];
int d[DIM+5];

int sol = 0;

deque<int> dq;

void bfs(int start){

    for(int i=1;i<=n;i++){
        d[i] = INF;
    }
    d[start] = 0;
    dq.push_back(start);

    while(!dq.empty()){
        int nod = dq.front();
        dq.pop_front();

        for(auto vec:L[nod]){

            if(d[vec] != INF){
                continue;
            }

            d[vec] = d[nod]+1;
            dq.push_back(vec);
        }
    }
}

signed main(){

    f>>n>>m;
    f>>s;
    for(int i=1;i<=m;i++){
        f>>x>>y;
        L[x].push_back(y);
    }

    bfs(s);

    for(int i=1;i<=n;i++){
        if(d[i] == INF){
            g<<"-1 ";
        }else{
            g<<d[i]<<" ";
        }
    }

    return 0;
}