Cod sursa(job #2259194)

Utilizator razvan171514Razvan Mihai razvan171514 Data 13 octombrie 2018 10:15:13
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <vector>
#define DIM 100005
 
using namespace std;
 
ifstream fin ("bfs.in");
ofstream fout ("bfs.out");
 
vector <int> L[DIM];
 
int n, m, s, t, x, y, p, u, nod, k, i, c[DIM], l[DIM], v[DIM];
 
int main()
{
    fin >> n >> m >> s;
    for (i=1; i<=n; i++)
        l[i] = -1;
    for (t=1; t<=m; t++){
        fin >> x >> y;
        L[x].push_back(y);
    }
    p = 1;
    u = 1;
    c[1] = s;
    v[s] = 1;
    l[s] = 0;
    while (p <= u){
        nod = c[p];
        for (i=0; i<L[nod].size(); i++){
            k = L[nod][i];
            if (v[k] == 0){
                v[k] = 1;
                c[++u] = k;
                l[k] = l[nod] + 1;
            }
        }
        p++;
    }
    for (i=1; i<=n; i++){
        fout << l[i] << " ";
    }
    return 0;
}