Cod sursa(job #2954380)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 14 decembrie 2022 09:18:59
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <vector>
#include <bitset>
#include <queue>
using namespace std;
bitset<100010> v;
vector<int> L[100010];
queue<int> q;
int D[100010];
int n,m,x,y,st;
void bfs(int nod){
    v[nod]=true;
    D[nod]=0;
    q.push(nod);
    while (!q.empty()){
        int crt=q.front();
        q.pop();
        for (auto vec:L[crt]){
            if (!v[vec]){
                q.push(vec);
                D[vec]=D[crt]+1;
                v[vec]=true;
            }
        }
    }
}
int main () {
    ifstream fin ("bfs.in");
    ofstream fout("bfs.out");
    fin>>n>>m>>st;
    for (int i=1;i<=n;i++){
        D[i]=-1;
    }
    for (int i=1;i<=m;i++){
        fin>>x>>y;
        L[x].push_back(y);
    }
    bfs(st);
    for (int i=1;i<=n;i++){
        fout<<D[i]<<" ";
    }
    return 0;
}