Cod sursa(job #3303304)

Utilizator AndreiEsteNebunAndrei Mateescu AndreiEsteNebun Data 15 iulie 2025 10:25:40
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <vector>
#include <queue>

using namespace std;

string filename = "bfs";

ifstream fin(filename + ".in");
ofstream fout(filename + ".out");

const int NMAX = 1e5;

//bool vis[NMAX + 5]; nu mai am nevoie fiindca stiu ca nu a fost vizitat daca rez = -1
int rez[NMAX + 5];
vector<int> adj[NMAX + 5];

int main()
{
    int n,m,s;
    fin>>n>>m>>s;
    for(int i=1;i<=m;i++)
    {
        int x,y;
        fin>>x>>y;
        adj[x].push_back(y);
    }
    for(int i=1;i<=n;i++)
        rez[i] = -1;

    queue<int> q;
    q.push(s);
    rez[s]=0;
    while(!q.empty())
    {
        int nod = q.front();

        for(auto it : adj[nod])
        {
            if(rez[it] == -1)
            {
                rez[it] = rez[nod] + 1;
                q.push(it);
            }
        }
        q.pop();
    }
    for(int i=1;i<=n;i++)
        fout<<rez[i]<<' ';
    return 0;
}