Introducción
Finalmente, la compañía de películas está financiando tu película. Le han dado un presupuesto máximo y también establecen el tiempo de ejecución de su película.
Ahora puedes comenzar con la preproducción. Ya tienes un montón de escenas planeadas, pero no todas encajarán en el presupuesto y la película también durará demasiado. Sin embargo, sabes la importancia de cada escena. Tu objetivo es elegir escenas, para que la película no sea demasiado cara, demasiado larga y mediocre.
Entrada
Obtienes el running time
y budget
el estudio ha aprobado:
[25, 10]
Tienes la lista de escenas incluidas running time
, costs
y la importance
de cada una de ellas:
[ [5, 2, 4], [7, 1, 3] ]
Si las matrices no funcionan para usted, elija otro formato de entrada que se adapte mejor a usted. Los tiempos son en minutos. El presupuesto y los costos están en millones de monedas al azar. La importancia es un rango de [1–9]
. Todos los números son enteros.
Salida
Imprima la lista de escenas que se incluirán en la película en el asunto que:
- La suma de
importance
se maximiza. - Los costos no exceden el presupuesto.
- La duración está dentro de un rango de ± 5 minutos del tiempo de ejecución aprobado.
El orden de las escenas no es importante y no necesita ser preservado.
Puede generar una lista de números o una matriz. Su salida puede tener un índice basado en cero o en uno:
[0,2,5] – 0, 2, 5 – 0 2 5
[1,3,6] – 1, 3, 6 – 1 3 6
Es posible que se apliquen múltiples soluciones a cualquier entrada dada. Solo necesitas encontrar uno.
Restricciones
- Las escenas no se pueden acortar ni se pueden hacer más baratas.
- Cada escena solo se puede incluir una vez.
Requisitos
- Su programa debe finalizar en el momento de la duración real de la película.
- La entrada se acepta desde
STDIN
argumentos de línea de comandos, como parámetros de función o desde el equivalente más cercano. - Puedes escribir un programa o una función. Si es una función anónima, incluya un ejemplo de cómo invocarla.
- Este es el código de golf, por lo que la respuesta más corta en bytes gana.
- Las lagunas estándar no están permitidas.
Películas
Tu primera película es un documental sobre un pequeño pueblo en Alemania llamado Knapsack 1 . Esta ciudad fue reasentada debido a limitaciones ambientales en los años 70:
Movie: [25, 10]
Scenes: [
[5, 2, 4],
[5, 5, 7],
[7, 1, 3],
[8, 5, 3],
[12, 3, 9],
]
Posible solución con tiempo de ejecución 22
, presupuesto 10
y una importancia de 20
:
0, 1, 4
Tu próximo proyecto es un episodio de Fargo :
Movie: [45, 25]
Scenes: [
[2, 1, 1],
[8, 5, 9],
[10, 6, 8],
[10, 3, 6],
[10, 9, 7],
[11, 4, 3],
[19, 5, 6],
]
Posible solución con tiempo de ejecución 40
, presupuesto 24
y una importancia de 31
:
0, 1, 2, 3, 4
Finalmente, aquí están las escenas de una película en la que " M. McConaughey viaja a una galaxia distante solo para descubrir que Matt Damon llegó allí primero ":
Movie: [169, 165]
Scenes: [
[5, 8, 2],
[5, 20, 6],
[6, 5, 8],
[6, 10, 3],
[7, 6, 5],
[7, 9, 4],
[7, 8, 9],
[7, 9, 5],
[8, 6, 8],
[8, 8, 8],
[8, 5, 6],
[9, 5, 6],
[9, 8, 5],
[9, 4, 6],
[9, 6, 9],
[9, 8, 6],
[9, 7, 8],
[10, 22, 4],
[10, 12, 9],
[11, 7, 9],
[11, 9, 8],
[12, 11, 5],
[15, 21, 7],
]
Posible solución con tiempo de ejecución 169
, presupuesto 165
y una importancia de 133
:
1, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22
1 Cualquier parecido entre el problema del desafío y los entornos locales reales es totalmente casual.
fuente
Haskell, 125 bytes
Ejemplo de uso:
(25,10) & [(5,2,4),(5,5,7),(7,1,3),(8,5,3),(12,3,9)]
->[0,1,4]
.Cómo funciona:
Encontré el truco de subsecuencia hace un tiempo en una respuesta de @xnor. Es más corto de lo
subsequence
que requiereimport Data.List
.fuente
Ruby,
172166165 bytesRealmente debería comenzar a verificar si las versiones de Ruby de mis respuestas de Python son más elegantes antes de publicar esas respuestas de Python. En cualquier caso, este es el mismo enfoque de optimización de fuerza bruta que antes. Cualquier consejo sobre golf es bienvenido, incluidos aquellos que involucran algunas técnicas de optimización reales.
Sin golf:
fuente