Cod sursa(job #3369526)

Utilizator laurentiu.maticaMatica Laurentiu-Andrei laurentiu.matica Data 21 octombrie 2026 00:08:50
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

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

static void bfs(const int s, const vector<vector<int>> &graf, const int n) {
    vector<int>rez(n+1,-1);
    vector<bool>viz(n+1, false);
    queue<int>q;

    viz[s]=true;
    q.push(s);
    rez[s]=0;

    while(!q.empty()) {
        const int crt = q.front();
        q.pop();
        for (auto v : graf[crt]) {
            if (rez[v] == -1) {
                rez[v] = rez[crt]+1;
                q.push(v);
            }
        }
    }
    for (int i =1 ;i <= n;i++) {
        fout << rez[i] << " ";
    }
}

int main() {
    int n,m,s;
    fin >> n >> m >> s;
    vector <vector<int> > graf(n+1);
    for (int i=0;i<m;i++) {
        int x,y;
        fin >> x >> y;
        graf[x].push_back(y);
    }
    bfs(s,graf,n);
    return 0;
}