Cod sursa(job #1873058)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 8 februarie 2017 19:17:27
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <bits/stdc++.h>
using namespace std;

const int NMAX = 1e5 + 5;

vector<int> g[NMAX];
int d[NMAX];

int main(void) {
    ifstream fi("bfs.in");
    ofstream fo("bfs.out");
    queue<int> q;
    int n, m, x, u, v;

    fi >> n >> m >> x;
    for (int i = 0; i < m; ++i) {
        fi >> u >> v;
        g[u].push_back(v); }

    d[x] = 1;
    q.push(x);

    while (!q.empty()) {
        u = q.front(), q.pop();

        for (auto v: g[u]) if (!d[v]) {
            d[v] = d[u] + 1;
            q.push(v); } }

    for (int i = 1; i <= n; ++i)
        fo << (d[i] - 1) << " \n"[i == n];

    return 0; }