Турнірна таблиця обласної олімпіади
Обмеження: 2 сек., 256 МіБ
Олімпіада в самому розпалі — фаворит змагання Зеник встиг розв’язати кілька задач, але запекла боротьба тільки попереду.
Учасники олімпіади на Алготестері бачать тільки свій результат, але не знають, скільки балів набрали інші. А от організатори можуть спостерігати повну картину — їм видно турнірну таблицю.
В олімпіаді беруть участь nn людей, пронумерованих від 1 до nn. Зеник виступає під номером 1.
Порядок учасників у турнірній таблиці заданий перестановкою pp чисел від 1 до nn. На першому місці в таблиці розташований учасник номер p1p1, на другому місці — учасник p2p2 і т. д.
Під час олімпіади відбулося qq подій. Події бувають трьох типів:
Задано titi = 1, kiki. Зеник розв’язує задачу й обганяє kiki учасників над ним в турнірній таблиці.
Задано titi = 2, xixi. Учасник з номером xixi обганяє одного учасника над собою.
Задано titi = 3, xixi та kiki. Організаторів олімпіади, які прикували погляди до таблиці, цікавить сума номерів kiki учасників, що розташовані безпосередньо над учасником з номером xixi.
Організатори п’ють чай і не хочуть нічого рахувати самостійно. Допоможіть їм відповісти на їхні запитання.
Вхідні дані
У першому рядку задано одне ціле число nn — кількість учасників.
У наступному рядку задано nn цілих чисел pipi, що задають початковий порядок учасників у турнірній таблиці.
У наступному рядку задано одне ціле число qq — кількість подій під час олімпіади.
У наступних qq рядках задано події.
Якщо подія першого типу, то задано два цілі числа ti=1ti=1 та kiki — тип події та кількість учасників, яких пережене Зеник. Перед Зеником є хоча б kiki учасників.
Якщо подія другого типу, то задано два цілі числа ti=2ti=2 та xixi — тип події та номер учасника, який пережене учасника над ним. Учасник xixi не є першим.
Якщо подія третього типу, то задано три цілі числа ti=3ti=3, xixi та kiki — тип події, номер учасника та кількість над ним, яка цікавить організаторів олімпіади. Перед учасником з номером xixi є хоча б kiki учасників.
Вихідні дані
На кожен запит третього типу — виведіть суму номерів kiki учасників над учасником з номером xixi.
Обмеження
2≤n,q≤1062≤n,q≤106,
1≤pi≤n1≤pi≤n, усі pipi різні,
1≤ki≤n−11≤ki≤n−1, 1≤xi≤n1≤xi≤n,
серед подій є хоча б одна подія третього типу.
Оцінювання задачі складається із наступних блоків:
1 бал — приклад з умови,
4 бали — є запити тільки третього типу,
10 балів — є запити тільки другого та третього типів,
10 балів — без додаткових обмежень.
Бали за блок ви отримаєте лише якщо дасте правильну відповідь на всі тести з блоку.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
3 2 3 1 10 3 3 1 2 3 3 2 1 3 1 2 1 2 3 2 2 2 3 2 2 3 1 1 3 2 1 | 2 3 5 4 2 3 |