Cod sursa(job #2280658)

Utilizator gazdac_alex@yahoo.comGazdac Alexandru Eugen [email protected] Data 10 noiembrie 2018 22:47:33
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in ("bfs.in");
ofstream out ("bfs.out");

int const NLIM=100005;
queue <int> coada;
vector <int> muchii[NLIM];
int distanta[NLIM];
int n,m;

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(){
int x,y,i,nod_start;
in >> n >> m >> nod_start;
for(i=0;i<m;i++){
    in >> x >> y;
    muchii[x].push_back(y);
}
for(i=1;i<=n;i++)distanta[i]=-1;
distanta[nod_start]=0;
coada.push(nod_start);
bfs();
for(i=1;i<=n;i++){
    out << distanta[i] << " ";
}
}


int main(){
citire();

return 0;}