Задача C. Запросы на перестановке
Ограничение по времени | Ограничение по памяти |
---|---|
1.5 секунды | 256 мегабайт |
У вас есть перестановка и массив целых чисел , который изначально заполнен нулями. Вам нужно обработать q запросов одного из трёх типов:
• : для всех , добавить к .
• : вычислить и вывести .
• : поменять местами и .
Формат входного файла
В первой строке записаны два целых числа и — размер перестановки и количество запросов.
Во второй строке записаны целых чисел если .
Каждая из следующих строк содержат описания запросов.
Каждый запрос задан в одном из следующих форматов в зависимости от типа запроса:
для запросов первого типа.
для запросов второго типа.
для запросов третьего типа.
Формат выходного файла
Выведите ответы на все запросы второго типа, каждый ответ в отдельной строке.
Система оценки
Подзадача | Дополнительные ограничения | Баллы |
---|---|---|
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