Cod sursa(job #2917003)

Utilizator florinrafiliuRafiliu Florin florinrafiliu Data 2 august 2022 17:31:24
Problema BFS - Parcurgere in latime Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;

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

const int maxN = 1e5 + 5;
const int INF = 1e9;

int dist[maxN];
vector <int> g[maxN];

void bfs (int root) {
    queue <int> q;

    q.push(root);
    dist[root] = 1;

    while(!q.empty()) {
        int node = q.front();

        for(auto to : g[node])
            if(dist[to] == 0) {
                dist[to] = dist[node] + 1;
                q.push(to);
            }
        q.pop();
    }
}

int main()
{
    int n, m, root;
    fin >> n >> m >> root;

    for(int i = 1; i <= m; ++i) {
        int u, v; fin >> u >> v;
        g[u].push_back(v);
    }

    bfs(root);

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

    return 0;
}