Kilos de desperdicio
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