Cod sursa(job #944368)

Utilizator avramavram andrei marius avram Data 28 aprilie 2013 12:06:43
Problema BFS - Parcurgere in latime Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>

using namespace std;
#define DIM 3003

char a[DIM][DIM];
int c[DIM*DIM];
int v[DIM*DIM];

int n, m, k, i, j, s, p, u;

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

    c[1] = s;
    v[s] = 1;
    p = 1;
    u = 1;

    while (p<=u) {
        // analizez vecinii nevizitati ai lui c[p]
        for (i=1;i<=n;i++) {
            if (v[i] == 0 && a[c[p]][i] == 1) {
                u++;
                c[u] = i;
                v[i] = v[c[p]] + 1;
            }
        }
        p++;

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

    return 0;
}