eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Динамічний масив

Динамічний масив

Потрібно реалізувати структуру даних, яка являє собою динамічний масив, який підтримує наступні операції: \begin{enumerate} \item Присвоїти числу, яке стоїть на позиції \textbf{u}, значення \textbf{p}. \item Вставити число \textbf{p} після позиції \textbf{u} (але перед позицією \textbf{u+1}, якщо вона існує). \item Повідомити, скільки чисел, які не перевищують \textbf{p}, стоїть на позиціях з \textbf{u} по \textbf{v} включно. \end{enumerate} Елементи масиву нумеруються з одиниці. \InputFile У першому рядку знаходяться два натуральних числа \textbf{n} та \textbf{m} - початкова кількість елементів у масиві та кількість операцій (\textbf{1} ≤ \textbf{n} ≤ \textbf{200000}, \textbf{1} ≤ \textbf{m} ≤ \textbf{200000}). У другому рядку знаходиться \textbf{n} цілих чисел \textbf{a_1}, \textbf{a_2}, ..., \textbf{a_n} - елементи початкового масиву (\textbf{0} ≤ \textbf{a_i} ≤ \textbf{10^6}). Наступні \textbf{m} рядків містять описи операцій у форматі \textbf{1 u p} (\textbf{u} ≥ \textbf{1}, \textbf{u} не перевищує поточного розміру масиву, \textbf{0} ≤ \textbf{p} ≤ \textbf{10^6}), \textbf{2 u p} (\textbf{u} ≥ \textbf{0}, \textbf{u} не перевищує поточного розміру масиву, \textbf{0} ≤ \textbf{p} ≤ \textbf{10^6}) або \textbf{3 u v p} (\textbf{1} ≤ \textbf{u} ≤ \textbf{v}, \textbf{v} не перевищує поточного розміру масиву, \textbf{0} ≤ \textbf{p} ≤ \textbf{10^6}). \OutputFile У вихідному файлі повинні знаходитись відповіді на запити - по одній у рядку.
Ліміт часу 15 секунд
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
5 5
1 3 5 4 2
3 2 4 4
1 3 3
3 2 4 4
2 2 10
3 2 4 4
Вихідні дані #1
2
3
2
Автор Сергій Копеліович