Mathematica, 65 bytes
f[a___,x_,b___]/;NestList[2#-1&,a~Min~b/. 2->0,4]~SubsetQ~{a,b}=x
Esto define una función fque debería llamarse con 5 argumentos, p. Ej.
f[5, 9, 17, 33, 829]
En principio, la función se puede invocar con cualquier número (distinto de cero) de argumentos, pero puede obtener resultados inesperados ...
Creo que esta es la primera vez, que logré poner toda la solución a un desafío no trivial en el lado izquierdo de a =.
Explicación
Esta solución realmente pone las capacidades de coincidencia de patrones de Mathematica a trabajar para nosotros. La característica básica que estamos usando es que Mathematica no solo puede definir funciones simples como, f[x_] := (* some expression in x *)sino que podemos usar patrones arbitrariamente complejos en el lado izquierdo, por ejemplo f[{a_, b_}, x_?OddQ] := ..., agregaría una definición a la fque solo se usa cuando se llama con un elemento de dos elementos. lista y un entero impar. Convenientemente, ya podemos dar nombres a elementos arbitrariamente en la parte inferior de la expresión del lado izquierdo (por ejemplo, en el último ejemplo, podríamos referirnos inmediatamente a los dos elementos de la lista como ay b).
El patrón que estamos usando en este desafío es f[a___,x_,b___]. Aquí a___y b___son secuencias de cero o más argumentos y xes un argumento único. Dado que el lado derecho de la definición es simplemente x, lo que queremos es algo de magia que garantice que xse use para la entrada que estamos buscando a___y que b___sean simplemente comodines que cubran los elementos restantes.
Esto se realiza adjuntando una condición al patrón con /;. El lado derecho de /;(todo hasta el =) debe regresar Truepara que este patrón coincida. La belleza es que comparador de patrón de Mathematica tratará cada asignación de a, xy ba las entradas para nosotros, por lo que la búsqueda del elemento correcto está hecho por nosotros. Esto es esencialmente una solución declarativa al problema.
En cuanto a la condición en sí:
NestList[2#-1&,a~Min~b/. 2->0,4]~SubsetQ~{a,b}
Tenga en cuenta que esto no depende xen absoluto. En cambio, esta condición depende solo de los cuatro elementos restantes. Esta es otra característica conveniente de la solución de coincidencia de patrones: debido a los patrones de secuencia, ay bjuntos contienen todas las demás entradas.
Por lo tanto, esta condición debe verificar si los cuatro elementos restantes son elementos contiguos de nuestra secuencia con un espacio como máximo. La idea básica para verificar esto es que generamos los siguientes cuatro elementos desde el mínimo (vía ) y verificamos si los cuatro elementos son un subconjunto de esto. Las únicas entradas donde eso puede causar problemas son aquellas que contienen un , porque esto también genera elementos de secuencia válidos, por lo que debemos manejarlo por separado.xi+1 = 2xi - 12
Última parte: veamos la expresión real, porque hay algo más de azúcar sintáctica divertida aquí.
...a~Min~b...
Esta notación infija es la abreviatura de Min[a,b]. Pero recuerde que ay bson secuencias, por lo que esto realmente se expande a los cuatro elementos Min[i1, i2, i3, i4]y nos da el elemento restante más pequeño en la entrada.
.../. 2->0
Si esto resulta en un 2, lo reemplazamos con un 0 (que generará valores que no están en la secuencia). El espacio es necesario porque, de lo contrario, Mathematica analiza el literal flotante .2.
NestList[...&,...,4]
Aplicamos la función sin nombre de la izquierda 4 veces a este valor y recopilamos los resultados en una lista.
2#-1&
Esto simplemente multiplica su entrada por 2 y la disminuye.
...~SubsetQ~{a,b}
Y finalmente, verificamos que la lista que contiene todos los elementos de ay bes un subconjunto de esto.