OMIPS22 - Cupones
Ver en PDFA Karel le gustan los cupones de descuento. Recientemente consiguió un bloc con varios cupones. Los cupones del bloc funcionan de la siguiente manera:
- Cada cupón tiene un número, llamémosle a ese número
.
- El cupón te permite comprar
artículos y llevarte gratis el de menor costo.
Es decir, si tu cupón tiene el número y compras artículos que valen
,
y
pesos, entonces el artículo de
pesos (por ser el más barato) no tienes que pagarlo y pagarías únicamente
pesos por los tres artículos.
Karel quiere comprar varios artículos usando sus cupones. Karel sabe el precio de todos los artículos. Por supuesto, el precio que pague Karel por todos los artículos dependerá de la forma en la que use los cupones. Ayuda a Karel a determinar cuál es el precio mínimo que tiene que pagar por todos los artículos si utiiza sus cupones de forma óptima.
En la fila del mundo habrá montones de zumbadores que representan el precio de los artículos que quiere comprar Karel. Karel debe comprar TODOS los artículos.
En la fila del mundo habrá montones de zumbadores que representan los números
de los cupones de Karel. Karel siempre tendrá al menos
cupón.
Problema
Escribe un programa que determine cuál es el menor precio que Karel debe pagar por todos los artículos y deje un montón de zumbadores igual a ese número en la posición .
Ejemplos
Entrada

Salida

Explicación
Karel tiene dos cupones, el primero le permite comprar artículos sin pagar el más barato y otro
artículos sin pagar el más barato.
Karel puede utilizar el primer cupón con los dos artículos de precio y ahorrarse uno de ellos.
Luego puede utilizar el segundo cupón con los artículos de precio ,
y
ahorrándose uno de los de
.
El costo total de los artículos restantes sería:
Consideraciones
- Karel inicia en la posición
orientado al norte.
- Karel lleva infinitos zumbadores en la mochila.
- El mundo de Karel es rectangular sin paredes internas.
- No hay espacios entre los montones de zumbadores de la primera y segunda fila.
- Ni los artículos ni los cupones están ordenados.
- No importa la posición ni la orientación final de Karel.
- Únicamente importan los zumbadores que dejes en la casilla
.
Subtareas
- (7 puntos): Todos los cupones tienen
, es decir, te permiten comprar un producto gratis. Los artículos están ordenados por precio de menor a mayor.
- (8 puntos): Karel sólo tiene un cupón. Los artículos están ordenados por precio de menor a mayor.
- (12 puntos): Todos los cupones tiene la misma
. Los artículos están ordenados por precio de menor a mayor.
- (28 puntos): Todos los artículos cuestan lo mismo.
- (45 puntos): Sin restricciones adicionales.
Fuente: OMIPS 2022 (César Cepeda)
Comentarios