Cod sursa(job #2788238)

Utilizator mihneadv@yahoo.comDavid Mihnea Stefan [email protected] Data 25 octombrie 2021 12:49:39
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include<iostream>
#include<vector>
#include<queue>
#include<fstream>

using namespace  std;

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

vector<vector<int>>v;
vector<int>nivel;
int X;

void BFS(int start)
{
    queue<int>Q;
    Q.push(start);
    nivel[start] = false;
    while(!Q.empty())
    {
        int actual = Q.front();
        Q.pop();
        for(int i = false; i < v[actual].size(); i++)
        {
            if(nivel[v[actual][i]] == -1)
            {
                nivel[v[actual][i]] = nivel[actual] + 1;
                Q.push(v[actual][i]);
            }
        }
    }
}

int main()
{
    int U, start;
    fin >> X >> U >> start;
    v.resize(X);
    nivel.resize(X, - 1);
    for(int i = 0; i < U ; i++)
    {
        int V1, V2;
        fin >> V1 >> V2;
        V1--, V2--;
        v[V1].push_back(V2);
    }
    BFS(start - 1);
    for(int i = 0; i < X; i++)
    {
        fout << nivel[i] << " ";
    }
    return false;
}