Listas iguales circularmente

Dadas dos listas de enteros, queremos saber si una es igual
circularmente a la otra. Es decir, si se puede obtener una lista a
partir de la otra rotando sus elementos.

Por ejemplo: l₁ = [1, 2, 3] es igual circularmente a l₂ = [3, 1, 2],
porque al colocar el 3 de l₂ al final, obtenemos l₁. Otro ejemplo:
[2, 7, 1, 0] no es igual a [0, 1, 7, 2]. Un caso especial es que
consideraremos que dos listas vacías son iguales circularmente.

El ejercicio es implementar la función siguiente:

    /**
     * @pre  cierto
     * @post se devuelve cierto si l1 y l2 son iguales circularmente, 
     *       falso en caso contrario.
     */
    bool circularly_equal(const list<int>& l1, const list<int>& l2)

Solo hay que enviar esta función.

Observación

Sólo tenéis que enviar el procedimiento requerido; el programa principal
será ignorado.

Información del problema

Autoría: PRO2

Generación: 2026-01-25T13:10:56.854Z

© Jutge.org, 2006–2026.
https://jutge.org
