Cod sursa(job #3005115)

Utilizator SergetecLefter Sergiu Sergetec Data 16 martie 2023 19:30:58
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
/*
  Lefter Sergiu - 16/03/2023
 */
#include <fstream>
#include <queue>
#include <vector>
#include <algorithm>

using namespace std;

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

const int N = 100000;

queue <int> Q;
vector <int> a[N+1];
int n, m, nod, dist[N+1], viz[N+1], tata[N+1];

int main() {
    in >> n >> m >> nod;
    for (int i = 1; i <= m; ++i) {
        int x, y;
        in >> x >> y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    for (int i = 1; i <= n; ++i) {
        sort(a[i].begin(), a[i].end());
    }
    dist[nod] = 0;
    viz[nod] = 1;
    tata[nod] = 0;
    Q.push(nod);
    while (!Q.empty()) {
        int x = Q.front();
        Q.pop();
        for (auto i : a[x]) {
            if (!viz[i]) {
                viz[i] = 1;
                dist[i] = dist[x] + 1;
                tata[i] = x;
                Q.push(i);
            }
        }
        out << x << " ";
    }
    in.close();
    out.close();
    return 0;
}