Cod sursa(job #1214711)

Utilizator TibixbAndrei Tiberiu Tibixb Data 31 iulie 2014 10:35:32
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<fstream>
#include<vector>
#include<bitset>
#include <queue>
#define DIM 100010

using namespace std;

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

bitset<DIM> V;
vector<int> L[DIM];
queue<int> Q;
int D[DIM];

int n, m, s, i, x, y, nod, fiu;

int main() {
    fin>>n>>m>>s;
    for (i=1;i<=m;i++) {
        fin>>x>>y;
        L[x].push_back(y);
    }

    Q.push(s);
    V[s] = 1;
    D[s] = 1;
    while (!Q.empty()) {
        nod = Q.front();
        Q.pop();

        for (i=0;i<L[nod].size();i++) {
            fiu = L[nod][i];
            if (!V[fiu]) {
                Q.push(fiu);
                V[fiu] = 1;
                D[fiu] = 1 + D[nod];
            }
        }


    }

    for (i=1;i<=n;i++)
        fout<< -1 + D[i]<<" ";

    return 0;
}