Cod sursa(job #3124141)

Utilizator GeorgeAndreiGeorge Andrei Iarca GeorgeAndrei Data 27 aprilie 2023 00:51:37
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<queue>

using namespace std;

int N, M, S;

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

    f >> N >> M >> S;

    vector<vector<int>> adj(N+1);

    int u, v;
    for (int i = 0; i < M; i++) {
        f >> u >> v;
        adj[u].push_back(v);
    }

    vector<int> dist(N+1, -1);
    queue<int> q;
    q.push(S);
    dist[S] = 0;

    while (!q.empty()) {
        u = q.front();
        q.pop();
        for (int nod: adj[u]) {
            if (dist[nod] != -1)
                continue;    
            dist[nod] = dist[u]+1;
            q.push(nod); 
        }
    }

    for (int u = 1; u <= N; u++) {
        g << dist[u] << " ";
    }

    f.close();
    g.close();
    return 0;
}