Cod sursa(job #2924592)

Utilizator DafinaTrufasTrufas Dafina DafinaTrufas Data 5 octombrie 2022 19:37:05
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>

using namespace std;

int n, a[100001][100001], v[100001], c[100001], nrp[100001];
ofstream g("bfs.out");

void bf (int s)
{
    int p = 1, u = 1, i, nr = 0;
    c[1] = s;
    for(i = 1; i <= n; i++) nrp[i] = -1;
    nrp[s] = 0;
    v[s] = 1;
    while (p <= u)
    {
        s = c[p];
        nr++;
        for (i = 1; i <= n; i++)
            if (a[s][i] == 1 && v[i] == 0)
            {
                v[i] = 1;
                c[++u] = i;
                nrp[i] = nrp[s] + 1;
            }
        p++;
    }
    for(i = 1; i <= n; i++)
        g << nrp[i] << ' ';
}

int main()
{int m, s, i, x, y;
ifstream f("bfs.in");
f >> n >> m >> s;
for(i = 1; i <= m; i++)
{
    f >> x >> y;
    a[x][y] = 1;
}
bf(s);
return 0;
}