Codeforces Round 545 (Div. 1) |
---|
Закончено |
Вася любит ездить на поездах, но не любит, когда вагон, в котором он едет, расположен в хвосте.
Вася садится на поезд на вокзале. Поезд состоит из $$$n$$$ вагонов, пронумерованных от $$$1$$$ до $$$n$$$, считая от локомотива. Во время движения поезда происходит три типа событий:
В каждый момент времени будем нумеровать вагоны с головы поезда, начиная с $$$1$$$. При добавлении новых вагонов к голове поезда нумерация старых может сдвинуться.
Чтобы выбрать, в каком вагоне ехать, Вася ввёл для каждого вагона величину $$$A_i$$$ (где $$$i$$$ — номер вагона), которая вычисляется следующим образом:
Вася ещё не решил, откуда и куда ехать, поэтому после каждого события одного из трёх типов он хочет знать номер наиболее близкого к голове поезда вагона из таких, что его значение $$$A_i$$$ минимально среди всех вагонов поезда. Так как вагонов очень много, Вася попросил Вас написать программу, отвечающую на его вопросы.
Первая строка содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \leq n \leq 10^9$$$, $$$1 \leq m \leq 300\,000$$$) — количество вагонов в поезде на момент отправления с вокзала и количество станций соответственно.
Следующие $$$m$$$ строк задают описания событий. Каждое событие одного из трёх следующих видов:
Гарантируется, что в любой момент времени времени длина поезда не превышает $$$10^9$$$. Также гарантируется, что числа $$$A_i$$$ не станут слишком большими. Формально, гарантируется, что если просуммировать по всем запросам $$$3$$$-го типа самое большое прибавление (то есть $$$b + (n - 1) \cdot s$$$, где $$$n$$$ — это количество вагонов в момент этого запроса), то такая сумма не будет превосходить $$$10^{18}$$$.
После каждого из $$$m$$$ запросов выведите два целых числа: $$$j$$$ и $$$A_j$$$ — номер наиболее близкого к голове поезда вагона, что его значение $$$A_j$$$ минимально, и само значение $$$A_j$$$.
1 8 1 1 3 1 1 3 1 1 2 1 2 1 3 1 1 2 1 3 1 5
1 0 1 1 1 2 3 0 3 0 1 3 5 0 1 4
Название |
---|