Cod sursa(job #2424631)

Utilizator iliescu99andreiiliescu andrei iliescu99andrei Data 23 mai 2019 16:11:37
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>

using namespace std;

vector<int> vizitat;
vector<int> distanta;
vector<int> vecini[100001];
queue<int> coada;

int main() {
    ifstream f("bfs.in");
    ofstream g("bfs.out");

    int n,m,s;
    int x,y;
    f>>n>>m>>s;

    for(int i=0;i<m;i++){
        f>>x>>y;
        vecini[x].push_back(y);
    }

    for(int i=0;i<=n;i++){
        vizitat.push_back(0);
        distanta.push_back(-1);
    }

    vizitat[s]=1;
    distanta[s]=0;
    coada.push(s);

    while(coada.empty()==0){
        x = coada.front();
        coada.pop();

        cout<<x<<endl;

        for( int i=0; i<vecini[x].size() ;i++ ){
            if(vizitat[vecini[x][i]] ==0 ){
                coada.push(vecini[x][i]);
                vizitat[vecini[x][i]]=1;
                distanta[ vecini[x][i] ]= distanta[x]+1;
            }
        }
    }

    for(int i=1;i<distanta.size();i++){
        g<<distanta[i]<<" ";
    }



    return 0;
}