Олимпиадный тренинг

Задача . C. Жадный шоппинг


Вам дан массив \(a_1, a_2, \ldots, a_n\) из целых чисел. Этот массив невозрастающий.

Рассмотрим \(n\) магазинов, расположенных в ряд. Магазины пронумерованы целыми числами от \(1\) до \(n\) слева направо. Цена еды в \(i\)-м магазине равна \(a_i\) монет.

Вы должны обработать \(q\) запросов двух видов:

  • 1 x y: для всех магазинов \(1 \leq i \leq x\) присвоить \(a_{i} = max(a_{i}, y)\).
  • 2 x y: рассмотрим голодного мужчину с \(y\) монетами. Он посещает все магазины с \(x\)-го магазина по \(n\)-й, и если он может купить еду в текущем магазине, он покупает одну порцию этой еды. Найдите, какое количество порций еды он купит. Мужчина может покупать еду в магазине \(i\), если у него есть хотя бы \(a_i\) монет. После покупки количество его монет уменьшается на \(a_i\).
Входные данные

В первой строке находится два целых числа \(n\), \(q\) (\(1 \leq n, q \leq 2 \cdot 10^5\)).

Во второй строке находится \(n\) целых чисел \(a_{1},a_{2}, \ldots, a_{n}\) \((1 \leq a_{i} \leq 10^9)\) — цены в магазинах. Гарантируется, что \(a_1 \geq a_2 \geq \ldots \geq a_n\).

Каждая из следующих \(q\) строк содержит три целых числа \(t\), \(x\), \(y\) (\(1 \leq t \leq 2\), \(1\leq x \leq n\), \(1 \leq y \leq 10^9\)), описывающие очередной запрос.

Гарантируется, что существует хотя бы один запрос типа \(2\).

Выходные данные

Для каждого запроса типа \(2\) выведите ответ в новой строке.

Примечание

В первом запросе голодный мужчина купит еду во всех магазинах с \(3\)-го по \(10\)-й.

Во втором запросе голодный мужчина купит еду в магазинах \(4\), \(9\) и \(10\).

После третьего запроса массив \(a_1, a_2, \ldots, a_n\) цен не поменяется и останется \(\{10, 10, 10, 6, 6, 5, 5, 5, 3, 1\}\).

В четвертом запросе голодный мужчина купит еду в магазинах \(2\), \(3\), \(4\), \(5\), \(9\) и \(10\).

После пятого запроса массив \(a\) цен станет \(\{10, 10, 10, 7, 6, 5, 5, 5, 3, 1\}\).

В шестом запросе голодный мужчина купит еду в магазинах \(2\) и \(4\).


Примеры
Входные данныеВыходные данные
1 10 6
10 10 10 6 6 5 5 5 3 1
2 3 50
2 4 10
1 3 10
2 2 36
1 4 7
2 2 17
8
3
6
2

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя