Escriba un programa para determinar si una secuencia periódica de enteros positivos tiene la propiedad de que, por cada entero que n
ocurre en la secuencia, nunca hay más que n
otros enteros entre dos ocurrencias consecutivas n
.
Por ejemplo, 2, 3, 5, 2, 3, 6, 2, 3, 5, 2, 3, 6, ...
tiene esta propiedad: cada par de ocurrencias consecutivas de 2
tener como máximo dos enteros entre ellas (como 2, 3, 5, 2
y 2, 3, 6, 2
; cada par de ocurrencias consecutivas de 3
tener como máximo tres enteros entre ellas; y lo mismo para 5
y 6
.
Sin embargo, 2, 3, 5, 2, 3, 4, 2, 3, 5, 2, 3, 4, ...
no tiene esta propiedad: dos ocurrencias consecutivas de 4
, a saber 4, 2, 3, 5, 2, 3, 4
, tienen más de cuatro enteros entre ellas.
Entrada : una representación razonable de una secuencia periódica de enteros positivos. Por ejemplo, una lista finita como {2, 3, 5, 2, 3, 6}
puede representar la primera secuencia infinita 2, 3, 5, 2, 3, 6, 2, 3, 5, 2, 3, 6, ...
anterior. (Para el caso, el problema podría plantearse para listas finitas que se envuelven en lugar de para listas periódicas infinitas).
Salida : un valor verdadero / falso.
Ejemplos verdaderos:
{1}
{8, 9}
{2, 3, 4}
{5, 5, 3, 3, 6}
{2, 3, 5, 2, 3, 6}
{6, 7, 3, 5, 3, 7}
{9, 4, 6, 7, 4, 5}
{1, 1, 1, 1, 1, 100, 1}
{1, 9, 1, 8, 1, 7, 1, 11}
Falsy ejemplos:
{1, 2, 3}
{2, 3, 9, 5}
{3, 5, 4, 4, 6}
{2, 3, 5, 2, 3, 4}
{3, 5, 7, 5, 9, 3, 7}
{5, 6, 7, 8, 9, 10, 11}
{1, 9, 1, 8, 1, 6, 1, 11}
Este es codegolf , por lo que gana el código más corto. Se alientan las respuestas en todos los idiomas.
fuente