Məsələlər
Динамический массив
Динамический массив
Требуется реализовать структуру данных, которая представляет из себя динамический массив, поддерживающий следующие операции:
\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
В выходном файле должны находиться ответы на запросы - по одному в строке.
Giriş verilənləri #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
Çıxış verilənləri #1
2 3 2