Module: árvore cartesiana


Problem

2 /3


Outra tarefa sobre consultas em um array

Problem

Você recebe uma matriz a de tamanho n e q consultas a ela. Existem dois tipos de pedidos:
  • li ri — realizar um deslocamento cíclico do segmento [li, ri] para a direita . Ou seja, para todo x tal que li ≤ x  < ; riax + 1 torna-se igual ao valor anterior axali torna-se igual ao valor anterior  ;ari;
  • li ri — inverta o segmento [li, ri].
 
É necessário enviar o array após todas as requisições terem sido processadas.
 
Entrada
A primeira linha contém dois números inteiros nq (1 ≤ n, q < /em> ≤ 2·105).
A segunda linha contém n inteiros a1a2, ..., an (1 ≤ ai  ≤ 109).
Em seguida vêm q linhas. O iésimo deles contém três números inteiros tili ri, onde ti — digite iª consulta, [li, ri >] — segmento no qual a consulta é executada (1 ≤ ti ≤ 2, 1 ≤ l < sub>i
 ≤ ri ≤ n). < br />  
Impressão
Imprimir m números, ith dos quais é igual ao número na posição bi  ;após o processamento de todas as solicitações.

Entrar Saída
6 3
1 2 3 4 5 6
2 1 3
2 3 6
1 1 6
1 3 2 6 5 4


(c) Kurbatov E., 2018