Cod sursa(job #2192319)

Utilizator EclipseTepes Alexandru Eclipse Data 5 aprilie 2018 16:46:31
Problema BFS - Parcurgere in latime Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
#define dMAX 100000

using namespace std;

int n, m, x, y, S, pVerif;
vector<int> graf[dMAX + 2];
deque<int> myDeque;
bool viz[dMAX + 2];
int cost[dMAX + 2];

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

int main()
{
    int i, j;
    fin >> n >> m >> S;
    for (i = 1; i <= m; i++) {
        fin >> x >> y;
        graf[x].push_back(y);
    }
    myDeque.push_back(S);
    cost[S] = true;
    while (!myDeque.empty()) {
        pVerif = myDeque.front();
        myDeque.pop_front();
        viz[pVerif] = true;
        for (i = 0; i < graf[pVerif].size(); i++) {
            if (!viz[graf[pVerif][i]]) {
                cost[graf[pVerif][i]] = cost[pVerif] + 1;
                myDeque.push_back(graf[pVerif][i]);
            }
        }
    }
    for (i = 1; i <= n; i++) {
        fout << cost[i] - 1 << ' ';
    }
    return 0;
}