Cod sursa(job #2216967)

Utilizator Sergiu1256Ionita Sergiu1256 Data 28 iunie 2018 14:59:25
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
//
//  main.cpp
//  codeforces
//
//  Created by адин on 24.06.2018.
//  Copyright © 2018 Ionitas. All rights reserved.
//
#include <fstream>
#include <vector>
#include <queue>


using namespace std;

vector<int> myvertex[1000005];
int dist[1000005]; queue<int> coada;

inline void bfs(){
    int nod,vecin;
    while (!coada.empty()) {
        nod=coada.front(),coada.pop();
        for (int i(0); i<myvertex[nod].size() ; i++) {
            vecin=myvertex[nod][i];
            if (dist[vecin]==-1){
                coada.push(vecin);
                dist[vecin]=dist[nod]+1;
            }
        }
    }
    
}


int main(int argc, const char * argv[]) {
    ifstream fin("bfs.in");
    ofstream fout("bfs.out");
    ios::sync_with_stdio(false);
    fin.tie(0);
    int n, m,x;
    fin>>n>>m>>x;
    for(int x,y,i(1);i<=m;i++){
        fin>>x>>y;
        myvertex[x].push_back(y);
    }
    for(int i(1);i<=n;i++)
        dist[i]=-1;
        dist[x]=0;
        coada.push(x);
    bfs();
    for (int i(1); i<=n; i++)  fout<<dist[i]<<" ";
    return 0;
}