Cod sursa(job #2666796)

Utilizator Vasilescu-LaurentiuVasilescu Laurentiu-Marian Vasilescu-Laurentiu Data 2 noiembrie 2020 15:16:42
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb

#include <bits/stdc++.h>

using namespace std;

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

list<int> Lista[100002];

int Vector[100002], n, m;

void FunctieBFS(int parm)
{
    for(int i = 1; i <= n; i++)
        Vector[i] = -1;

    Vector[parm] = 0;
    queue<int> coada;
    coada.push(parm);

    while(!coada.empty())
    {
        int a = coada.front();
        coada.pop();
        for(int y : Lista[a])
            if(Vector[y] == -1)
            {
                Vector[y] = Vector[a] + 1;
                coada.push(y);
            }
    }
}

int main()
{
    int parm, x, y;
    in >> n;
    in >> m;
    in >> parm;
    for(int i = 1; i <= m; i++)
    {
        in >> x;
        in >> y;
        Lista[x].push_back(y);
    }
    FunctieBFS(parm);
    for(int i = 1; i <= n; i++)
        out << Vector[i] << ' ';
}