EduBrick

N. Обмен участками

3000 мс · 256 МБ · всё или ничего

Дан массив. Обрабатывайте запросы двух видов:

  • 1 l1 r1 l2 r2 — поменять местами содержимое двух непересекающихся отрезков одинаковой длины (l1≤r1<l2≤r2l_1 \le r_1 < l_2 \le r_2, r1−l1=r2−l2r_1 - l_1 = r_2 - l_2);
  • 2 p — вывести три числа: элементы на позициях pp, p+1p+1, p+2p+2. Если позиция выходит за границы массива, вместо элемента выведите −1-1.

Формат ввода

В первой строке — числа nn и qq (1≤n,q≤1051 \le n, q \le 10^5). Во второй — nn чисел aia_i (∣ai∣≤109|a_i| \le 10^9). Далее qq запросов в описанном формате.

Формат вывода

На каждый запрос второго вида выведите три числа в одной строке.

Примеры

ввод
6 4
1 2 3 4 5 6
2 1
1 1 2 5 6
2 1
2 5
вывод
1 2 3
5 6 3
1 2 -1
ввод
1 1
7
2 1
вывод
7 -1 -1
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.