Задача №114765. Экспедиция на Сириус

В компьютерную игру «Экспедиция на Сириус» играют \(n\) игроков, пронумерованных от \(1\) до \(n\). За предыдущие миссии у игрока номер \(i\) накоплено \(c_i\) единиц опыта. Будем говорить, что два игрока имеют одинаковый уровень , если у них одинаковое значение опыта. Игрок, который имеет больше опыта, имеет более высокий уровень.

Игра состоит из нескольких раундов. В конце каждого раунда каждому игроку добавляется опыт, равный количеству различных более высоких уровней у остальных игроков. Например, если значения опыта игроков \([2, 5, 5, 1, 2, 10]\), то опыт первого игрока увеличится на 2: существует два более высоких уровня — игроки с опытом 5 и игрок с опытом 10. Опыт последнего игрока в этом примере не увеличится. Опыт игроков изменяется одновременно. То есть в конце раунда в нашем примере опыт игроков станет равным \([4, 6, 6, 4, 4, 10]\).

Вам требуется ответить на несколько вопросов. Каждый вопрос может быть одного из трех типов:

  1. Сколько различных уровней будет у игроков после \(k\) раундов игры?
  2. Какое суммарное количество единиц опыта добавится всем игрокам за первые \(k\) раундов?
  3. Сколько единиц опыта будет у игрока номер \(i\) после начисления опыта в конце \(k\)-го раунда?

Входные данные

В первой строке даны два целых числа \(n\) и \(q\) (\(1 \le n, q \le 300\,000)\) — количество игроков и количество вопросов, на которые вам нужно ответить.

Во второй строке даны \(n\) целых чисел \(c_i\) (\(0 \le c_i \le 10^{12}\)) — количество единиц опыта у каждого из игроков в начале текущей игры.

В следующих \(q\) строках даны описания вопросов. Каждая строка начинается с целого числа \(t\) (\(t \in \{1, 2, 3\}\)), которое обозначает тип вопроса.

  • Если \(t = 1\), далее дано целое число \(k\) (\(0 \le k \le 10^{12}\)) — количество раундов.
  • Если \(t = 2\), далее дано целое число \(k\) (\(0 \le k \le 10^{12}\)) — количество раундов.
  • Если \(t = 3\), далее даны два целых числа \(k\) и \(i\) (\(0 \le k \le 10^{12}\), \(1 \le i \le n\)) — количество раундов и номер игрока, опыт которого нас интересует.

Во всех вопросах \(k = 0\) означает момент начала игры до проведения первого раунда.

Выходные данные

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

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

Пусть для всех тестов в подзадаче выполнено \(n \le N_{max}\), \(q \le Q_{max}\), \(c_i \le C_{max}\), \(k \le K_{max}\).

Ограничения
Подзадача Баллы \(N_{max}\) \(Q_{max}\) \(C_{max}\), \(K_{max}\) \(t\) Необх. подзадачи Информация о проверке
1 18 \(5000\) \(5000\) \(10\,000\) У первая ошибка
2 16 \(5000\) \(5000\) \(10^7\) У, 1 первая ошибка
3 14 \(5000\) \(5000\) \(10^{12}\) У, 1, 2 первая ошибка
4 7 \(3 \cdot 10^5\) \(3 \cdot 10^5\) \(10^7\) У, 1, 2 первая ошибка
5 12 \(5000\) \(3 \cdot 10^5\) \(10^{12}\) У, 1–3 первая ошибка
6 14 \(3 \cdot 10^5\) \(3 \cdot 10^5\) \(10^{12}\) \(t=1\) первая ошибка
7 10 \(3 \cdot 10^5\) \(3 \cdot 10^5\) \(10^{12}\) \(t\in\{1,2\}\) 6 первая ошибка
8 9 \(3 \cdot 10^5\) \(3 \cdot 10^5\) \(10^{12}\) У, 1–7 первая ошибка

Примечание

В первом тесте опыт игроков изменяется следующим образом:

Раунд \(c_1\) \(c_2\) \(c_3\) \(c_4\) \(c_5\) \(c_6\)
начало игры 5 4 4 2 2 2
1 5 5 5 4 4 4
2 5 5 5 5 5 5

Во втором тесте опыт игроков изменяется следующим образом:

Раунд \(c_1\) \(c_2\) \(c_3\) \(c_4\) \(c_5\)
начало игры 0 3 5 4 2
1 4 5 5 5 5
Примеры
Входные данные
6 6
5 4 4 2 2 2
1 0
1 1
1 2
2 1
2 2
3 1 5
Выходные данные
3
2
1
8
11
4
Входные данные
5 4
0 3 5 4 2
1 0
1 1
2 1
3 1 1
Выходные данные
5
2
10
4
Сдать: для сдачи задач необходимо войти в систему