EduBrick

E. Своппер

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

Своппер — структура, которая умеет две вещи: взять отрезок и поменять местами axa_x с ax+1a_{x+1}, ax+2a_{x+2} с ax+3a_{x+3}, и так далее; и посчитать сумму на произвольном отрезке.

Все обмены выровнены: первый индекс отрезка нечётный, последний чётный. Значит, пары (1,2),(3,4),(5,6),…(1,2), (3,4), (5,6), \ldots — одни и те же для всех операций.

Формат ввода

В первой строке nn и mm (1≤n,m≤2⋅1051 \le n, m \le 2 \cdot 10^5). Во второй строке nn чисел aia_i (∣ai∣≤106|a_i| \le 10^6).

В следующих mm строках операции. 1 x y — обменять по парам на отрезке [x,y][x, y]; гарантируется, что xx нечётно, yy чётно и x<y≤nx < y \le n. 2 l r — сумма на отрезке (1≤l≤r≤n1 \le l \le r \le n).

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

Для каждой операции второго вида выведите сумму в отдельной строке.

Примеры

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