У вас есть сломанная микроволновка, в которую вы хотите положить несколько бананов. У вас есть $$$n$$$ моментов времени, пока микроволновка не сломается окончательно. В каждый момент времени она показывает новую операцию.
Пусть $$$k$$$ будет равно текущему количеству бананов в микроволновке. Изначально $$$k = 0$$$. В $$$i$$$-й операции на вход подаются три параметра $$$t_i$$$, $$$x_i$$$, $$$y_i$$$. В зависимости от значения $$$t_i$$$ необходимо сделать одно из следующий действий:
Тип 1: ($$$t_i=1$$$, $$$x_i$$$, $$$y_i$$$) — выберите $$$a_i$$$ такое, что $$$0 \le a_i \le y_i$$$, и произведите следующую замену $$$a_i$$$ раз: $$$k:=\lceil (k + x_i) \rceil$$$.
Тип 2: ($$$t_i=2$$$, $$$x_i$$$, $$$y_i$$$) — выберите $$$a_i$$$ такое, что $$$0 \le a_i \le y_i$$$, и произведите следующую замену $$$a_i$$$ раз: $$$k:=\lceil (k \cdot x_i) \rceil$$$.
Обратите внимание, что $$$x_i$$$ может быть дробным значением. Смотрите формат входных данных для пояснения. Также $$$\lceil x \rceil$$$ — это наименьшее целое число $$$\ge x$$$.
В $$$i$$$-й момент времени необходимо произвести $$$i$$$-ю операцию ровно один раз.
Для каждого $$$j$$$ такого, что $$$1 \le j \le m$$$, выведите самый ранний момент времени такой, что вы можете получить ровно $$$j$$$ бананов. Если нельзя получить ровно $$$j$$$ бананов, то выведите $$$-1$$$.
В первой строке записаны два целых числа $$$n$$$ $$$(1 \le n \le 200)$$$ и $$$m$$$ $$$(2 \le m \le 10^5)$$$.
Затем следуют $$$n$$$ строк, где $$$i$$$-я строка описывает операцию в $$$i$$$-й момент времени. Каждая строка содержит три целых числа $$$t_i$$$, $$$x'_i$$$ и $$$y_i$$$ ($$$1 \le t_i \le 2$$$, $$$1\le y_i\le m$$$).
Обратите внимание, что задается $$$x'_i$$$, которое равно $$$10^5 \cdot x_i$$$. Чтобы получить $$$x_i$$$, используйте формулу $$$x_i= \dfrac{x'_i} {10^5}$$$.
Для операций типа 1 $$$1 \le x'_i \le 10^5 \cdot m$$$, а для операций типа 2 $$$10^5 < x'_i \le 10^5 \cdot m$$$.
Выведите $$$m$$$ целых чисел, где $$$i$$$-е число равно самому раннему моменту времени, в который можно получить ровно $$$i$$$ бананов (или $$$-1$$$, если это невозможно).
3 20 1 300000 2 2 400000 2 1 1000000 3
-1 -1 1 -1 -1 1 -1 -1 -1 3 -1 2 3 -1 -1 3 -1 -1 -1 3
3 20 1 399999 2 2 412345 2 1 1000001 3
-1 -1 -1 1 -1 -1 -1 1 -1 -1 3 -1 -1 -1 3 -1 2 -1 3 -1
В первом примере мы хотим показать, как получить $$$16$$$ бананов за три момента времени. Изначально $$$k=0$$$.
Можно показать, что $$$k=16$$$ нельзя получить быстрее, чем за три момента времени, используя данные операции.
Во втором примере мы хотим показать, как получить $$$17$$$ бананов за два момента времени. Изначально $$$k=0$$$.
Можно показать, что $$$k=17$$$ нельзя получить быстрее, чем за два момента времени, используя данные операции.
Название |
---|