Cod sursa(job #3306477)

Utilizator lucazguroiuLuca Zguroiu lucazguroiu Data 10 august 2025 22:22:06
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
#include <climits>
#include <queue>
#include <vector>
#include <bitset>
#define pb push_back
using namespace std;
string filename = "bfs";
ifstream in(filename + ".in");
ofstream out(filename + ".out");

const int NMAX = 1e5+1;

vector<int> d, ad[NMAX];

void bfs(int node)
{
    queue<int> q;
    d[node]=0;
    q.push(node);
    while(!q.empty())
    {
        int p = q.front(); q.pop();

        for(auto i : ad[p])
            if(d[i] == -1)
            {
                d[i]=d[p]+1;
                q.push(i);
            }
    }

}

int n, m , start;
int main()
{
    in>>n>>m>>start;
    d.resize(n+1, -1);
    int a, b;
    for(int i = 1;i<=m;i++)
    {
        in>>a>>b;
        ad[a].pb(b);
    }

    bfs(start);

    for(int i = 1; i<=n;i++)
        out<<d[i]<<' ';


    return 0;
}