Cod sursa(job #3305332)

Utilizator ax_dogaruDogaru Alexandru ax_dogaru Data 31 iulie 2025 19:51:43
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, m, x, y, s, dist[100005];
bool vizit[100005];
queue<int> a;
vector<int> graf[100005];

void bfs(int nod) {
    a.push(nod);
    vizit[nod]=true;
    while(a.empty()==false) {
        nod=a.front();
        a.pop();
        cout << nod << "\n";
        for(auto u : graf[nod]) {
            if(vizit[u]==false) {
                vizit[u]=true;
                cout << u << " " << dist[nod]+1 << "\n";
                a.push(u);
                dist[u]=dist[nod]+1;
            }
        }
    }
}

int main()
{
    fin >> n >> m >> s;
    for(int i=1; i<=m; i++) {
        fin >> x >> y;
        graf[x].push_back(y);
    }
    bfs(s);
    for(int i=1; i<=n; i++) {
        if(dist[i]==0 && i!=s) {
            fout << "-1 ";
        } else {
            fout << dist[i] << " ";
        }
    }
    return 0;
}