Cod sursa(job #1855098)

Utilizator LazarAndreiLazar Andrei Teodor LazarAndrei Data 23 ianuarie 2017 13:57:19
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

ifstream in ("BFS.in");
ofstream out ("BFS.out");

int N , M , node , X , arr[100][100] , node1 , node2;

void read_input ()
{
    in >> N >> M >> X;
    for(int i = 1 ; i <= M ; ++ i)
    {
        in >> node1 >> node2;
        arr[node1][node2] = arr[node2][node1] = 1;
    }
}

void BFS ()
{
    queue <int> Q;
    bool  V[101];

    Q.push(X);
    V[X] = true;

    while(!Q.empty())
    {
        node = Q.front();
        Q.pop ();

        out << node << " ";

        for(int i = 1 ; i <= M ; ++ i)
        {
            if(arr[node][i] == 1 && V[i] == false)
                Q.push(i) , V[i] = true;
        }
    }
}

int main()
{
    read_input ();
    BFS ();

    return 0;
}