Cod sursa(job #2407949)

Utilizator SirVSbiVidam Szablocs SirVSbi Data 17 aprilie 2019 13:22:57
Problema BFS - Parcurgere in latime Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

ofstream ki("bfs.out");

int main(){
    ifstream be("bfs.in");


    int n, m, s;
    be >> n >> m >> s;


    vector<int> graph[m];
    bool visited[n];
    int dist[n];

    for(int i = 0; i <= n; i++){
        visited[i] = 0;
        dist[i] = -1;
    }

    int x, y;
    for(int i = 0; i < m; ++i){
        be >> x >> y;
        graph[x].push_back(y);

    }

    dist[s] = 0;
    visited[s] = 1;

    queue<int> q;
    q.push(s);
    int index;
    vector<int>::iterator it;
    while(!q.empty()){
        index = q.front();
        q.pop();

        for(it = graph[index].begin(); it != graph[index].end(); ++it){
            int cur = *it;
            if(!visited[cur]){
                visited[cur] = 1;
                dist[cur] = 1 + dist[index];
                q.push(cur);
            }

        }
    }


    for(int i = 1; i <= n; i++){
        ki << dist[i] << " ";
    }






}