Cod sursa(job #2525591)

Utilizator vlad082002Ciocoiu Vlad vlad082002 Data 17 ianuarie 2020 16:44:31
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;

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

vector<int> g[100005];
int n, m, s;
int dist[100005];


void citire() {
    fin >> n >> m >> s;
    for(int i = 1; i <= m; i++) {
        int a, b;
        fin >> a >> b;
        g[a].push_back(b);
    }
}

void solve() {
    memset(dist, -1, sizeof dist);
    dist[s] = 0;
    queue<int> q;
    q.push(s);
    while(!q.empty()) {
        int curr = q.front();
        q.pop();
        for(int i = 0; i < g[curr].size(); i++)
            if(dist[g[curr][i]] == -1) {
                dist[g[curr][i]] = dist[curr]+1;
                q.push(g[curr][i]);
            }
    }
}

void afis() {
    for(int i = 1; i <= n; i++)
        fout << dist[i] << ' ';
}

int main() {
    citire();
    solve();
    afis();
}