Cod sursa(job #2667537)

Utilizator tudosemihaitudose mihai tudosemihai Data 3 noiembrie 2020 16:55:49
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>

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

int n, m, start;
int dist[100005],bfs[100005];
bool found;

std::vector<int> g[100005],current,next;


int main() {

    for (int i = 0; i < 100005; i++)
        dist[i]=-1, bfs[i]=-1;

    in >> n >> m >> start;

    for (int i = 0; i < m; i++)
        {
            int a, b;
            in >> a >> b;
            g[a].push_back(b);
        }

    current.push_back(start);
    dist[start] = 0;
        for(int i = 0; i < current.size(); i++) {
            for(int j = 0; j < g[current[i]].size(); j++)
            {
                int node = g[current[i]][j];
                if(dist[node] < 0)
                {
                    current.push_back(node);
                    dist[node]= dist[current[i]] + 1;
                }
            }
        }


    for( int i = 1; i <= n; i++)
        out << dist[i] << " ";

    return 0;
}