EduBrick

C. Персистентный массив

3000 мс · 256 МБ · всё или ничего

Дан массив. Обрабатывайте запросы двух видов:

  • 1 v i x — создать новую версию из версии vv, присвоив её ii-му элементу значение xx;
  • 2 v i — вывести ii-й элемент версии vv.

Исходный массив — версия ноль. Каждый запрос первого вида создаёт версию со следующим номером; запросы второго вида версий не создают.

Формат ввода

В первой строке — числа nn и qq (1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5). Во второй — nn чисел исходного массива (∣ai∣≤109|a_i| \le 10^9). Далее qq запросов; номер версии не превосходит числа уже созданных, 1≤i≤n1 \le i \le n, ∣x∣≤109|x| \le 10^9.

Формат вывода

На каждый запрос второго вида выведите значение элемента.

Примеры

ввод
5 5
1 2 3 4 5
2 0 3
1 0 3 9
2 1 3
2 0 3
1 1 1 7
вывод
3
9
3
ввод
1 1
42
2 0 1
вывод
42
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.