Cod sursa(job #3185270)

Utilizator AdrianRosuRosu Adrian Andrei AdrianRosu Data 18 decembrie 2023 17:19:19
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
#define DIM 100001

using namespace std;

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

int dp[DIM];

vector <int> G[DIM];

int n, i, Q, x, y, k;

void bfs(int node){

    queue <int> Q;

    dp[node] = 1;

    Q.push(node);

    while(!Q.empty()){

        int node = Q.front();

        Q.pop();

        for(int i = 0 ; i < G[node].size(); i++)

            if(!dp[G[node][i]]){

                dp[G[node][i]] = dp[node] + 1;

                Q.push(G[node][i]);

            }


    }
}

int main(){

    fin >> n >> Q >> k;

    while(Q--){

        fin >> x >> y;

        G[x].push_back(y);

    }

    bfs(k);


    for(i=1;i<=n;i++)

        fout << dp[i] - 1 << " ";

}