Cod sursa(job #3296188)

Utilizator horia.boeriuBoeriu Horia Andrei horia.boeriu Data 12 mai 2025 09:36:46
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;
#define MAXN 100000
vector<int> v[MAXN + 1];
int f[MAXN + 1];
int deq[MAXN + 1];
int main()
{
    FILE *fin, *fout;
    int n, m, i, x, y, pr, ul, nr, nod;
    fin = fopen("bfs.in", "r");
    fscanf(fin, "%d%d%d", &n, &m, &nod);
    for (i = 0; i < m; i++) {
        fscanf(fin, "%d%d", &x, &y);
        v[x].push_back(y);
    }
    fclose(fin);
    pr = 0;
    deq[0] = nod;
    ul = f[nod] = 1;
    while (pr != ul) {
        x = deq[pr];
        nr = v[x].size();
        for (i = 0; i < nr; i++) {
            y = v[x][i];
            if (f[y] == 0) {
                deq[ul] = y;
                ul++;
                f[y] = f[x] + 1;
            }
        }
        pr++;
    }
    fout = fopen("bfs.out", "w");
    for (i = 1; i <= n; i++) {
        fprintf(fout, "%d ", f[i] - 1);
    }
    fclose(fout);
    return 0;
}