Cod sursa(job #1783078)

Utilizator miha1000Dica Mihai miha1000 Data 18 octombrie 2016 19:17:42
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
#define nmax 100005
using namespace std;



vector <int> G[nmax];
queue <int> q;
int dist[nmax];

int main (){
    int n,m,d,nod,i,x,y,it;
    ifstream f("bfs.in");
    ofstream g("bfs.out");
    f >> n >> m >> d;
    for(i=1;i<=m;i++){
        f >> x >> y;
        G[x].push_back(y);
    }
    for(i=1;i<=n;i++){
        dist[i]=-1;
    }
    q.push(d);
    dist[d]=0;
    while (!q.empty()){
        nod=q.front();
        q.pop();
        for (it=0;it<G[nod].size();it++)
        if (dist[G[nod][it]]==-1){
            q.push(G[nod][it]);
            dist[G[nod][it]]=dist[nod]+1;
        }
    }
    for (i=1;i<=n;i++){
        g << dist[i] << " ";
    }
    return 0;
}