Kilos de desperdicio


Enviar solución

Puntos: 100
Límite de tiempo: 1.0s
Límite de memoria: 256M

Tipo de problema
Lenguajes permitidos
C, C++, Java, Python

Seba sabe exactamente la cantidad de alimento que van a necesitar sus gatos cada día. Sin embargo, se enfrenta a un gran problema: sus gatos son tan exquisitos que se niegan a comer cualquier alimento que no haya sido comprado ese mismo día, obligando a Seba a ir a la tienda diariamente.

Para complicar más las cosas, en la tienda solo venden el alimento en \(P\) tamaños distintos de bolsas, donde la \(i\)-ésima bolsa trae exactamente \(r_i\) kilos. Como no siempre puede comprar la cantidad exacta que necesita, hay días en los que Seba se ve obligado a tirar a la basura los kilos que sobran.

A Seba le gustaría diseñar un programa que, dadas \(Q\) consultas (una por cada día) con la cantidad \(N\) de kilos necesarios, calcule cuál es la mínima cantidad de alimento que será desperdiciada al comprar al menos \(N\) kilos.

Por ejemplo, si necesita comprar 25 kilos y solo hay bolsas de 2 y 15 kilos, la mejor opción es comprar una bolsa de 15 y cinco bolsas de 2 (o cualquier otra combinación que sume 25 kilos), lo cual daría un desperdicio mínimo de 0 kilos.

Lamentablemente, Seba se va de viaje y no tiene tiempo de programarlo, ¡así que te pidió ayuda para resolverlo!

Entrada

La primera línea contiene dos enteros \(Q\) (\(1 \leq Q \leq 10^5\)) y \(P\) (\(1 \leq P \leq 50\)), la cantidad de días a consultar y la cantidad de tamaños de bolsas disponibles, respectivamente.

La segunda línea contiene \(P\) enteros distintos \(r_1, r_2, \dots, r_P\) (\(1 \leq r_i \leq 100\)), donde el \(i\)-ésimo número indica que existe una bolsa de \(r_i\) kilos de alimento.

Las siguientes \(Q\) líneas contienen un entero \(N\) (\(1 \leq N \leq 5 \cdot 10^4\)) cada una, indicando la cantidad mínima de kilos de alimento que se deben comprar ese día.

Salida

Para cada una de las \(Q\) consultas, imprimir una única línea con un entero que represente la mínima cantidad de kilos de alimento que será desperdiciada.

Ejemplo

Entrada 1

2 3
2 15 7
10
5

Salida 1

0
1

Entrada 2

3 2
10 17
1
16
27

Salida 2

9
1
0

Comentarios

No hay comentarios por el momento.