Cod sursa(job #1210570)

Utilizator mariusn01Marius Nicoli mariusn01 Data 20 iulie 2014 14:48:54
Problema BFS - Parcurgere in latime Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <vector>
#include <queue>
#define DIM 100001

using namespace std;

queue<int> q;
vector<int> L[DIM];
int v[DIM];

int i, a, b, n, m, x;

int main(){
    ifstream fin("bfs.in");
    ofstream fout("bfs.out");
    fin>>n>>m>>x;
    for (i=1;i<=m;i++) {
        fin>>a>>b;
        L[a].push_back(b);
    }

    q.push(x);
    v[x] = 1;

    while (!q.empty()) {
        x = q.front();
        for (i=0;i<L[x].size();i++) {
            if (v[ L[x][i] ] == 0) {
                v[ L[x][i] ] = 1;
                q.push(L[x][i]);
                v[L[x][i]] = 1 + v[x];
            }
        }

        q.pop();
    }

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