Cod sursa(job #2577733)

Utilizator NoodlesAndi Domnulete Noodles Data 9 martie 2020 19:32:34
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.31 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("bfs.in");
ofstream f2("bfs.out");

int a[100][100], viz[1000], N, M, S, i, j, x, y, ultim, el, coada[1000];



int main()
{
    int finale[6], andi = 1, control = 1, newulti;
    f >> N >> M >> S;

    for(i = 1; i <= N; i++){
        for(j = 1; j <= N; j++){
            a[i][j] = 0;
        }
    }

    for(i = 1; i <= M; i++){
        f >> x >> y;
        a[x][y] = 1;
    }

    for(i = 1; i <= N; i++){
        for(j = 1; j <= N; j++){
            cout << a[i][j] << " ";
        }
        cout << endl;
    }

    for(i = 1; i <= N; i++){
        viz[i] = 0;
    }

    viz[S] = 1;
    coada[1] = S;
    ultim = 1;

    for(i = 1; i <= N; i++){
        bool executed = false;
        el = coada[i];
        for(j = 1; j <= N; j++){
            if(a[el][j] == 1 && viz[j] == 0){
                executed = true;
                ultim++;
                coada[ultim] = j;
                viz[j] = 1;
                finale[j] = andi;
        }
    }
    if(executed){
        andi++;}
}

    finale[S] = 0;

    for(i = 1; i <= N; i++){
        if(viz[i] == 0){
            finale[i] = -1;
        }
    }

    for(i = 1; i <= N; i++){
        f2 << finale[i] << " ";
    }

 return 0;
}