Cod sursa(job #2523726)

Utilizator Seb0730Matei Sebastian Seb0730 Data 14 ianuarie 2020 18:03:10
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <queue>
using namespace std;
ifstream in("bfs.in");
ofstream out("bfs.out");


vector <int> v[500005];
bool b[500005];
int dist[500005];
queue <int> q;

int n, m, x, y, var, abc;

void bfs(int nod){
    q.push(nod);
    dist[nod]=0;
    b[nod]=1;
    while(!q.empty()){
        abc=q.front();
        q.pop();

        for(auto i:v[abc]){
            if(b[i]!=1){
                q.push(i);
                b[i]=1;
                dist[i]=dist[abc]+1;
            }
        }
    }

}




int main()
{
    in>>n>>m>>var;
    for(int i=1;i<=m;i++){
        in>>x>>y;
        v[x].push_back(y);
    }
    for(int i=1;i<=n;i++){
        dist[i]=-1;
    }
    bfs(var);
    for(int i=1;i<=n;i++){
        out<<dist[i]<<" ";
    }
}