Cod sursa(job #1517172)

Utilizator CalinSpiridonSpiridon Calin CalinSpiridon Data 3 noiembrie 2015 22:08:27
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;

#define maxd 100010

ifstream fin("bfs.in");
ofstream fout("bfs.out");

int n, m, s, x, y, t;
int d[maxd];
queue <int> c;
vector <int> a[maxd];

int main(){
    fin>>n>>m>>s;
    for(;m;--m){
        fin>>x>>y;
        a[x].push_back(y);
    }
    c.push(s);
    d[s]++;
    while(c.size()){
        t=c.front();
        c.pop();
        for(int i=0;i<a[t].size();++i){
            int g=a[t][i];
            if(!d[g]){
                d[g]=d[t]+1;
                c.push(g);
            }
        }
    }
    for(int i=1;i<=n;++i) fout<<d[i]-1<<' ';


    return 0;
}