Республиканская олимпиада по информатике 2022 года за 11 класс | Казахстанские олимпиады

Задача C. Запросы на перестановке

Ограничение по времени Ограничение по памяти
1.5 секунды 256 мегабайт

У вас есть перестановка p1,...,pnp_1, . . . , p_n и массив целых чисел a1,...,ana_1, . . . , a_n, который изначально заполнен нулями. Вам нужно обработать q запросов одного из трёх типов:

11 ll rr xx: для всех lirl \leq i \leq r, добавить xx к apia_{p_i}.

22 ll rr: вычислить и вывести al+al+1++ara_l + a_{l+1} + · · · + a_r.

33 aa bb: поменять местами pap_a и pbp_b.

Формат входного файла

В первой строке записаны два целых числа nn и qq (2n,q105)(2 \leq n, q \leq 10^5) — размер перестановки и количество запросов.

Во второй строке записаны nn целых чисел p1,...,pn(1pin,pipjp_1, . . . , p_n (1 \leq p_i \leq n, p_i \neq p_j если ij)i \neq j).

Каждая из следующих qq строк содержат описания запросов.

Каждый запрос задан в одном из следующих форматов в зависимости от типа запроса:

11 ll rr xx (1lrn,1x105)(1 \leq l \leq r \leq n, 1 \leq x \leq 10^5) для запросов первого типа.

22 ll rr (1lrn)(1 \leq l \leq r \leq n) для запросов второго типа.

33 aa bb (1a,bn,ab)(1 \leq a, b \leq n, a \neq b) для запросов третьего типа.

Формат выходного файла

Выведите ответы на все запросы второго типа, каждый ответ в отдельной строке.

Система оценки

Подзадача Дополнительные ограничения Баллы
0 Примеры 0
1 n, q <= 5000 7
2 p[i] = i, нету запросов типа 3 15
3 Все запросы типа 2 идут после запросов типа 1 и 3 17
4 n,q <= 50000 16
5 Нету запросов типа 3 24
6 - 21

Примеры

Вход

6 9
4 6 3 1 2 5
1 4 5 3
3 3 5
1 2 3 6
3 3 6
3 2 1
2 1 5
2 1 6
1 1 5 6
2 4 6

Выход

12
18
24