Cod sursa(job #3173402)

Utilizator Ayan__bAyan Bozesan Ayan__b Data 22 noiembrie 2023 19:59:31
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <queue>
#include <vector>
#include <fstream>

#define NMAX 100005

using namespace std;

ifstream f("bfs.in");
ofstream g("bfs.out");

vector <vector <int> > gr;
int N;
int M;
int S;
int distanta[NMAX];


void citire()
{

    f>>N>>M>>S;
    int x;

    gr.resize(N+1);
    int y;
    for (int i=0; i<M; i++)
    {
        f>>x>>y;
        gr[x].push_back(y);
    }


}



int main()
{
    citire();
    queue <int> coada;
    coada.push(S);

    while(!coada.empty())
    {
        int x=coada.front();
        for(size_t i=0; i<gr[x].size();i++)
        {
            if(distanta[gr[x][i]]==0 && gr[x][i]!=S)
            {
                coada.push(gr[x][i]);
                distanta[gr[x][i]]=distanta[x]+1;

            }

        }
        coada.pop();



    }
    for(int i=1; i<N+1; i++)
    {
        if(distanta[i]==0 && i!=S)
            distanta[i]=-1;
        g<<distanta[i]<<" ";
    }


    return 0;

}