Module: 笛卡尔树


Problem

2 /3


关于数组查询的另一个任务

Problem

给你一个数组 a 大小 n 和 q 对它的查询。有两种类型的请求:
    <李> 1 li ri —对片段进行循环移位 [li, ri] 向右.也就是说,对于每个 x 这样 li ≤ x  < ; riax + 1 变得等于先前的值 ax 并且 ali 变得等于前值  ;ari; <李> 2 li ri —翻转片段 [li, ri].
 
需要处理完所有请求后输出数组。
 
输入
第一行包含两个整数 n和 q (1 ≤ n, q < /em> ≤ 2·105).
第二行包含 n 整数 a1a2 sub>, ..., an (1 ≤ ai  ≤ 109).
接下来是 q 台词。第 i个包含三个整数 tili , ri,其中 ti —输入 i个查询, [li, ri] —执行查询的段 (1 ≤ ti ≤ 2, 1 ≤ l < sub>i ≤ ri ≤ n)。
 
印记
打印 m 数, i其中的数等于位置上的数 bi  ;在处理完所有请求之后。

<正文>

(c) Kurbatov E., 2018
输入 输出
<分区> 6 3 <分区> 1 2 3 4 5 6 <分区> 2 1 3 <分区> 2 3 6 <分区> 1 1 6 1 3 2 6 5 4