Cod sursa(job #2917004)

Utilizator florinrafiliuRafiliu Florin florinrafiliu Data 2 august 2022 17:32:23
Problema BFS - Parcurgere in latime Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;

const int max_up = 1e5 + 5;

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

vector <int> g[max_up];
vector <int> dist(max_up, 0);

void bfs (int u)
{
    queue <int> q;
    q.push(u);
    dist[u] = 1;
    while(!q.empty()) {
        int node = q.front();
        for(auto v : g[node]) {
            if(dist[v] == 0) {
                dist[v] = dist[node] + 1;
                q.push(v);
            }
        }
        q.pop();
    }
}
int main()
{
    int n, m, start; fin >> n >> m >> start;
    for(int i = 1; i <= m; ++i) {
        int u, v; fin >> u >> v;
        g[u].push_back(v);
    }
    bfs(start);
    for(int i = 1; i <= n; i++)
        fout << dist[i] - 1 << " ";
    return 0;
}