Intervale

Time limit: 1s Memory limit: 64MB Input: Output:

Cerință

Se dau NN numere naturale și QQ întrebări. Asupra numerelor se pot aplica două tipuri de operații:

  • Tipul 11: Se dă intervalul [L,R][L, R]. Pentru fiecare element aia_i, cu LiRL \leq i \leq R, se aplică operația aiai,a_i \leftarrow \lfloor \sqrt{a_i} \rfloor, unde x\lfloor x \rfloor reprezintă partea întreagă a numărului real xx.
  • Tipul 22: Se dă poziția PP. Se afișează valoarea elementului de la poziția PP.

Date de intrare

Pe prima linie se găsesc două numere întregi, NN și QQ.
Pe a doua linie se găsesc cele NN numere naturale a1,a2,,aNa_1, a_2, \dots, a_N.
Pe următoarele QQ linii se găsesc întrebările. Fiecare linie începe cu tipul întrebării, iar tiptip {1,2}\in \{1, 2\}:

  • întrebările de tipul 11 au formatul 1 L R;
  • întrebările de tipul 22 au formatul 2 P.

Date de ieșire

Pentru fiecare întrebare de tipul 22 se va afișa, pe câte o linie, răspunsul corespunzător.

Restricții și precizări

  • 1N,Q200 0001 \leq N, Q \leq 200 \ 000
  • 0ai1 000 000 0000 \leq a_i \leq 1 \ 000 \ 000 \ 000
  • 1L,R,PN1 \leq L, R, P \leq N
  • Pentru teste în valoare de 30 de puncte, N2 000N \leq 2 \ 000
  • Pentru teste în valoare de 20 de puncte, 0ai30 \leq a_i \leq 3

Exemplu

stdin

10 4
7 5 4 8 23 82 101 100 5 1
1 2 9
2 7
1 5 8
2 6

stdout

10
3

Explicație

După prima operație (tipul 11, intervalul [2,9][2, 9]), șirul devine: [[7, 2, 2, 2, 4, 9, 10, 10, 2, 1]]

A doua operație este de tipul 22, cu P=7P = 7, deci se afișează valoarea de la poziția 77, adică 1010.

După a treia operație (tipul 11, intervalul [5,8][5, 8]), șirul devine: [[7, 2, 2, 2, 2, 3, 3, 3, 2, 1]]

Ultima operație este de tipul 22, cu P=6P = 6, astfel se afișează valoarea de la poziția 66, adică 33.

Log in or sign up to be able to send submissions!