eolymp
bolt
Try our new interface for solving problems
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 В выходном файле должны находиться ответы на запросы - по одному в строке.
Zaman məhdudiyyəti 15 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
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
Müəllif Сергей Копелиович