Cod sursa(job #3313068)

Utilizator petric_mariaPetric Maria petric_maria Data 2 octombrie 2025 08:21:55
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("bfs.in");
ofstream g("bfs.out");

int n, m, s, x, y, vis[100005], dist[100005];
vector <int> v[100005];
queue <int> q;

void bfs () {
    while (!q.empty()) {
        int k = q.front();
        q.pop();
        for (auto x: v[k])
            if (vis[x] == 0) {
                vis[x] = 1;  q.push(x);  dist[x] = dist[k] + 1;
            }
    }
}

int main()
{
    f >> n >> m >> s;
    for (int i=1; i<=m; ++i) {
        f >> x >> y;
        v[x].push_back (y);
    }
    for (int i=1; i<=n; ++i)
        dist[i] = -1;

    dist[s] = 0;  q.push(s);  vis[s] = 1;
    bfs ();
    for (int i=1; i<=n; ++i)
        g << dist[i] << ' ';
    return 0;
}