Module: albero cartesiano


Problem

2 /3


Un'altra attività sulle query in un array

Problem

Ti viene fornito un array a di dimensioni n e q query ad esso. Esistono due tipi di richieste:
  • li ri — eseguire uno spostamento ciclico del segmento [li, ri] verso destra . Cioè, per ogni x tale che li ≤ x  < ; riax + 1 diventa uguale al valore precedente axali diventa uguale al valore precedente  ;ari;
  • li ri — inverti il ​​segmento [li, ri].
 
È necessario emettere l'array dopo che tutte le richieste sono state elaborate.
 
Inserimento
La prima riga contiene due numeri interi nq (1 ≤ n, q < /em> ≤ 2·105).
La seconda riga contiene n interi a1a2< / sub>, ..., an (1 ≤ ai  ≤ 109).
Poi vengono q linee. La iesima contiene tre numeri interi tili ri, dove ti — digita iesima query, [li, ri] — segmento su cui viene eseguita la query (1 ≤ ti ≤ 2, 1 ≤ l < sub>i
 ≤ ri ≤ n).
 
Impressum
Stampa m numeri, iesimo dei quali è uguale al numero nella posizione bi  ;dopo che tutte le richieste sono state elaborate.

Entra Uscita
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