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

Масив

Масив

Розглянемо масив \textbf{A}, який спочатку містить \textbf{N} чисел. Припустимо, що числа у масиві нумеруються зліва направо, починаючи з одиниці. Розглянемо наступні операції з цим масивом. \begin{itemize} \item \textbf{I i x} - вставити число \textbf{x} після числа, яке стоїть на позиції \textbf{i}, при цьому усі числа, які стояли на позиціях, більших \textbf{i}, зсуваються праворуч, і довжина масиву збільшується на \textbf{1}. Позиції у масиві нумеруються з одиниці. \textbf{I 0 x} означає додати елемент у початок масиву, \textbf{I 1 x} означає вставити елемент після першого числа і т.д. \item \textbf{D i} - видалити елемент, який стоїть на позиції \textbf{i}. При цьому усі числа, які стояли на позиціях, більших \textbf{i}, зсуваються на \textbf{1} ліворуч, і довжина масиву зменшується на \textbf{1}. \item \textbf{S i_1 i_2 len} - поміняти місцями блоки масиву \[\textbf{i_1}, ..., \textbf{i_1+len}\] та \[\textbf{i_2}, ..., \textbf{i_2+len}\]. В результаті цієї операції повинні помінятись значеннями елементи масиву \textbf{A\[i_1\]} і \textbf{A\[i_2\]}, \textbf{A\[i_1+1\]} і \textbf{A\[i_2+1\]}, і т.д. Гарантується, що відрізки \textbf{\[i_1}, \textbf{i_1+len\]} та \textbf{\[i_2, i_2+len\]} не перетинаються. \item \textbf{A i} - взнати, яке число знаходиться у даний момент на позиції \textbf{i}. \end{itemize} Вам належить виконати усі описані операції. \InputFile У першому рядку містяться числа \textbf{N} та \textbf{M} (\textbf{1} ≤ \textbf{N}, \textbf{M} ≤ \textbf{100000}), де \textbf{M} - кількість запитів. Далі йде \textbf{N} чисел - елементи масиву до виконання яких небудь операцій. Наступні \textbf{M} рядків містять операції, які необхідно виконати. Кожна операція задається рядком, у якому спочатку позначається вид операції, а потім заються її парамети, перераховані через пропуск. Гарантується, що у процесіе виконання операцій масив завжди буде не порожнім. Усі індекси, які використовуються в операціях, будуть в межах від \textbf{1} до поточного розміру масива, за винятком операції \textbf{I 0 x}, яка відповідає додаванню у початок масиву. Усі вхідні числа від \textbf{0} до \textbf{10^9}. \OutputFile На кожен запит \textbf{A} виведіть відповідь на нього у окремому рядку. Крім того, після виконання усіх операцій виведіть результуючий масив.
Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
5 6
1 2 3 4 5
I 0 10
A 1
A 6
D 3
A 3
S 1 4 1
Вихідні дані #1
10
5
3
4 5 3 10 1