Te han dado una bolsa de bolos. Todo el mundo sabe que para apreciar más los diferentes sabores, debes rotar entre los sabores.
Lo esencial:
- Solo puedes comer 1 bolo a la vez
- El orden en que comas tus bolos debe ser periódico.
- Cada período no puede contener un sabor particular más de una vez.
- Tu bolso solo tiene muchos bolos. No puede comer más de un sabor particular de bolos de lo que aparece en su bolsa.
- Desea comer tantos bolos como pueda (puede que no siempre sea posible)
Ejemplos:
Digamos que comienzas con 3 bolos rojos, 2 azules y 3 verdes:
R B G R B G R G Invalid: The last R must be followed by a B, not a G
R B G R B G R Valid, but sub-optimal
R R R Valid, but sub-optimal
R G B R G B R G Valid and optimal
G R B G R B G R Also valid and optimal (there are multiple good solutions)
De entrada y salida
- Se le pasa una lista no vacía de enteros positivos para los recuentos de colores. (El ejemplo anterior sería
[3,2,3]). - Debe devolver una lista que contenga un pedido válido y óptimo.
- En lugar de usar colores, usará los índices de la lista de entrada. (El último ejemplo de salida anterior sería
[2,0,1,2,0,1,2,0]). - Su salida puede estar indexada a 0 o indexada a 1. Mis ejemplos estarán indexados a 0
Casos de prueba
1 0
4 0 0 0 0
4 1 0 0 0 0
3 1 0 1 0 or 0 0 0
5 2 2 0 1 2 0 1 2 0
2 3 5 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2
2 4 5 2 1 2 1 2 1 2 1 2
3 4 5 2 1 0 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2 0 1 2
1 1 1 1 1 6 5 0 1 2 3 4 5 (lots of other solutions)
1 1 1 1 1 8 5 5 5 5 5 5 5 5
2 4 6 8 3 2 1 3 2 1 3 2 1 3 2 1 3 2
Este es un código de golf , ¡así que haga sus soluciones lo más cortas posible en su idioma favorito!