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

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

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

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

• 11 ll rr xx: для всех l≤i≤rl \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 (2≤n,q≤105)(2 \leq n, q \leq 10^5) — размер перестановки и количество запросов.

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

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

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

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

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

33 aa bb (1≤a,b≤n,a≠b)(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