Cod sursa(job #2226759)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 30 iulie 2018 16:27:17
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>
#include <vector>

int const NR=100005;
using namespace std;

ifstream fin("bfs.in");
ofstream fout("bfs.out");
int n,m,start,coada[NR],v[NR];
bool vizitat[NR];
vector < int > muchii[NR];

void bfs ()
{
    coada[0]=start;
    vizitat[start]=true;
    v[start]=1;
    int prim=0,ultim=0;
    while (prim<=ultim){
        for(unsigned int  i=0;i<muchii[coada[prim]].size();i++)
            if(!vizitat [muchii[coada[prim]][i]]){
                ultim ++;
                coada[ultim]=muchii[coada[prim]][i];
                vizitat[muchii[coada[prim]][i]]=true;
                v[muchii[coada[prim]][i]]=v[coada[prim]]+1;}
        prim++;}}

void citire (){
            fin>>n>>m>>start;
            for(int i=0;i<m;i++){
                int x,y;
                fin>>x>>y;
                muchii[x].push_back(y);
                }

bfs();
for(int i=1;i<=n;i++)
    fout<<v[i]-1<<" ";
}




int main()
{
    citire();
}