QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓

#18393. Problema de monedas simple (Hard)

Estadísticas

Este problema es idéntico al problema de monedas simple (Easy), salvo por las restricciones de $N$ y $M$.

Kuong vive en el Reino de Kyunghee. En el Reino de Kyunghee se utilizan $N$ tipos de monedas con valores $P_1, P_2, \cdots, P_N$.

Curiosamente, en el Reino de Kyunghee puede haber monedas con valor $0$ o negativo.

Kuong desea pagar exactamente $M$ unidades para comprar un artículo. Por supuesto, incluso si $M$ es $0$ o negativo, debe pagar exactamente $M$ unidades. Kuong tiene una cantidad infinita de cada tipo de moneda, por lo que si existe una forma de pagar exactamente $M$ unidades, siempre podrá hacerlo.

Por ejemplo, si debe pagar $94$ unidades usando monedas de $50$ y $-3$, el número mínimo de monedas necesarias es $4$ (dos monedas de $50$ y dos monedas de $-3$). No es posible pagar exactamente $94$ unidades con un número menor de monedas.

Entrada

La primera línea contiene el número de tipos de monedas $N$ ($0 \le N \le 2\,000$) y el monto a pagar $M$ ($-10\,000 \le M \le 10\,000$), separados por un espacio.

La segunda línea contiene los valores de cada moneda $P_1, P_2, \cdots, P_N$ ($-1\,000 \le P_i \le 1\,000$), separados por espacios. Si $N = 0$, la segunda línea no se proporciona en la entrada.

Todos los números de entrada son enteros.

Salida

Imprima el número mínimo de monedas necesarias para pagar $M$ unidades. Si no es posible pagar $M$ unidades de ninguna manera, imprima $-1$ en su lugar.

Ejemplos

Entrada 1

2 94
50 -3

Salida 1

4

Entrada 2

2 999
2 4

Salida 2

-1

Entrada 3

1 -5
-1

Salida 3

5

Entrada 4

0 1

Salida 4

-1

Entrada 5

2 0
1 -1

Salida 5

0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.