eolymp
bolt
Try our new interface for solving problems
Problems

Запити

Запити

У вас є масив a довжиною n. Вам дають q запитiв двох типiв:

  1. змiнити p-те число в масивi a на v;
  2. знайти p-те число в масивi a.

Протокол взаємодiї

Вам потрiбно реалiзувати три функцiї:

void init(integer n, array of integers a)

  • n — довжина масиву;
  • a — масив цiлих чисел;
  • ця функцiя викликається першою лише один раз. Вона потрiбна для того, щоб повiдомити вам розмiр масиву та сам масив. Лише пiсля виклику цiєї функцiї, будуть викликатись iншi двi.

void upd(integer p, integer v) - p — позицiя; - v — нове число; - ця функцiя викликається, коли потрiбно задати запит першого типу.

integer ask(integer p)

  • p — позицiя;
  • ця функцiя викликається, коли потрiбно задати запит другого типу;
  • функцiя має повернути цiле число—вiдповiдь на запит.

Формат вхiдних даних

Перший рядок мiстить два цiлих числа n та m (**1 ⩽ n ⩽ 100, 1 ⩽ m ⩽ 1 000**) — довжина масиву та кiлькiсть запитiв.

Другий рядок мiстить n цiлих чисел a1; a2; : : : ; an (**1 ⩽ ai ⩽ 100**) — числа масиву. Кожний з наступних m рядкiв описує запит i має один з наступних форматiв:

  1. «1 p v» (1 ⩽ p ⩽ n, 1 ⩽ v ⩽ 100) — позицiя та нове число.
  2. «2 p» (1 ⩽ p ⩽ n) — позицiя.

Формат вихiдних даних

Пiсля кожного запиту другого типу буде виведене одне цiле число—вiдповiдь на нього.

Блоки:

  1. (20 балiв) n ⩽ 10; m ⩽ 100; ai; vi ⩽ 20;
  2. (20 балiв) n ⩽ 30; m ⩽ 300; ai; vi ⩽ 30;
  3. (20 балiв) n ⩽ 50; m ⩽ 500; ai; vi ⩽ 50;
  4. (20 балiв) n ⩽ 75; m ⩽ 750; ai; vi ⩽ 75;
  5. (20 балiв) без додаткових обмежень.
Time limit 1 second
Memory limit 64 MiB
Input example #1
5 7
1 2 3 4 5
2 3
1 1 3
1 3 9
2 1
2 2
2 3
2 5
Output example #1
3
3
2
9
5