Cod sursa(job #2928733)

Utilizator gizzehhhAsavoaei Bianca Gabriela gizzehhh Data 23 octombrie 2022 19:11:54
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <vector>
#define N 100005
#include <queue>
#define v 2e9
using namespace std;


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

int n, m, sursa, i, x , y;
vector <int> l[N], dist(N, 2e9);
queue <int> q;

void Citire(){

    fin >> n >> m >> sursa;
    for(i=1; i<=m; i++)
    {
        fin >> x >> y;
        l[x].push_back(y);
    }
}

void BFS(int node){

    dist[node] = 0;
    q.push(node);
    while(q.empty() ==0 ){
        int x = q.front();
        q.pop();
        for( auto &p : l[x])
            if(dist[p] > dist[x] + 1)
        {
            dist[p] = 1 + dist[x];
            q.push(p);
        }
    }
}
int main()
{

    Citire();
    BFS(sursa);

    for(int i = 1; i <= n; i++)
        if(dist[i] == 2e9) fout <<"-1" <<" ";
        else
         fout << dist[i] <<" ";
    return 0;
}