Cod sursa(job #3273296)

Utilizator badeaalesiaAlesia Badea badeaalesia Data 1 februarie 2025 15:30:46
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
#include<fstream>

using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int mat[101][101];
int dist[200005];

void bfs(int n, int k)
{
    int C[101], p = 1, u = 1;
    C[1] = k;
    for(int i=1;i<=n;i++)
        dist[i]=-1;
    dist[k] = 0;
    while (p <= u)
    {
        int nodCrt = C[p];
        p++;
        for (int vecin = 1; vecin <= n; vecin++)
            if (mat[nodCrt][vecin] == 1 && dist[vecin] == -1)
            {
                dist[vecin] = dist[nodCrt] + 1;
                u++;
                C[u] = vecin;
            }
    }
    for(int i=1;i<=n;i++){
        fout<<dist[i]<<" ";
    }

}
int main()
{
    int n, m, k, x, y;
    fin>>n>>m>>k;
    for(int i=1;i<=n;i++){
        fin>>x>>y;
        mat[x][y]=1;
        mat[y][x]=1;
    }
    bfs(n, k);
    return 0;
}