// ERROR A PROPÓSITO: una búsqueda sin marcas. En un ciclo no termina, así que aquí se corta.
#include <iostream>
#include <queue>

#include "../graph.h"

int main() {
    Graph graph(3);
    graph.add_edge(0, 1);
    graph.add_edge(1, 2);
    graph.add_edge(2, 0);
    std::queue<int> pending;
    pending.push(0);
    int steps = 0;
    const int limit = 20;
    while (!pending.empty() && steps < limit) {
        int u = pending.front();
        pending.pop();
        steps++;
        for (const Edge& edge : graph.neighbors(u)) {
            pending.push(edge.to);
        }
    }
    std::cout << "cortado tras " << steps << " pasos, con " << pending.size() << " entradas en la cola\n";
    return 0;
}
