Cod sursa(job #3040648)

Utilizator sasha05Alex Neagu sasha05 Data 30 martie 2023 11:01:53
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;

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

int n,m,start,x,y,vecin;
int vizite[1001];
int distanta[1001];

vector<int> a[1001];
queue<int> o;

void BFS(int start){
    v[start]=1;
    d[start]=0;
    o.push(start);
    while(!o.empty()){
        int k=o.front();
        for(auto vecin::a[k]){
            if (v[vecin]==0){
                v[vecin]=1;
                o.push(vecin);
                d[vecin]=d[k]+1;
            }
        }
        o.pop();
    }
}
int main()
{
    
    fin>>n>>m>>start;
    while(fin>>x>>y){
        a[x].push_back(y);
    }
    for(int i=1;i<=n;++i){
        sort(a[i].begin(),a[i].end());
    }
    for(int i=1;i<=n;++i){
        d[i]=-1;
    }
    BFS(start);
    for(int i=1;i<=n;++i){
        fout<<d[i]<<" ";
    }
}