Cod sursa(job #2262770)

Utilizator alexbuzescuAlexandru Buzescu alexbuzescu Data 17 octombrie 2018 20:01:02
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,nodStart;
int const NLIM = 100005;
vector <int> Muchii[NLIM];
queue <int> Coada;
int Distanta[NLIM];
void BFS(){
    int Nod,vecin;
    while(!Coada.empty()){
        Nod = Coada.front();
        Coada.pop();
        for(unsigned int i=0;i<Muchii[Nod].size();i++){
            vecin = Muchii[Nod][i];
            if(Distanta[vecin] == -1){
                Coada.push(vecin);
                Distanta[vecin] = Distanta[Nod]+1;
            }
        }
    }
}
void Citire(){
    fin>>n>>m>>nodStart;
    for(unsigned int i=1; i<=m;i++){
        int x,y;
        fin>>x>>y;
        Muchii[x].push_back(y);
    }
    for(unsigned int i=1;i<=n;i++){
        Distanta[i]=-1;
    }
    Distanta[nodStart] = 0;

    Coada.push(nodStart);
    BFS();
    for(unsigned int i=1;i<=n;i++) fout<<Distanta[i]<<" ";
}

int main()
{
    Citire();
    return 0;
}