Cod sursa(job #1023656)

Utilizator alexclpAlexandru Clapa alexclp Data 7 noiembrie 2013 15:23:37
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;

const int N = 100005;

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

vector <int> muchii[N];
queue <int> coada;

int n, m;
int sursa;
int d[N];

void read()
{
    in >> n >> m >> sursa;
    int x, y;
    for (int i = 0; i < m; i++) {
        in >> x >> y;
        muchii[x].push_back(y);
    }
    d[sursa] = 1;
}

void bfs()
{
    coada.push(sursa);
    while (!coada.empty()) {
        int x = coada.front();
        coada.pop();
        for (int i = 0; i < muchii[x].size(); i++) {
            int y = muchii[x][i];
            if (d[y] == 0) {
                d[y] = 1 + d[x];
                coada.push(y);
            }
        }
    }
}

int main()
{
    read();
    bfs();

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

    return 0;
}