Cod sursa(job #3287003)

Utilizator Bogdan_VVasilescu Bogdan Bogdan_V Data 14 martie 2025 21:58:03
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;

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

int n,m,x,v[1000001];
vector<int> G[1000001];

void bfs(int x) {
    queue<int> q;
    q.push(x);
    v[x]=1;
    while(!q.empty()) {
        int nod = q.front();
        q.pop();
        out<<nod<<' ';
        for(int vecin : G[nod]) {
            if(!v[vecin]) {
                q.push(vecin);
                v[vecin]=1;
            }
        }
    }

}
int main() {
    int a,b;
    set<pair<int, int>> edges;

    in>>n>>m>>x;
    for(int i=0;i<m;i++) {
        in>>a>>b;

        pair<int, int> edge = {a, b};

        if (edges.find(edge) == edges.end()) {
            edges.insert(edge);
            G[a].push_back(b);
        }
    }

    for (int i = 1; i <= n; i++) {
        sort(G[i].begin(), G[i].end());
    }

    bfs(x);
    return 0;

}