Sign in
or
Register
Courses
Textbook
Compiler
Contests
Topics
Courses
數據結構
笛卡尔树
Module:
笛卡尔树
Problem
2
/3
关于数组查询的另一个任务
Problem
给你一个数组
a
大小
n
和
q
对它的查询。有两种类型的请求:
<李> 1
l
i
r
i
—对片段进行循环移位 [
l
i
,
r
i
] 向右.也就是说,对于每个
x
这样
l
i
≤
x
< ;
r
i
,
a
x
+ 1 sub > 变得等于先前的值
a
x
并且
a
li
变得等于前值  ;
a
ri
; <李> 2
l
i
r
i
—翻转片段 [
l
i
,
r
i
].
需要处理完所有请求后输出数组。
输入
第一行包含两个整数
n
和
q
(1 ≤
n
,
q < /em> ≤ 2·10
5
).
第二行包含
n
整数
a
1
,
a
2
sub>, ...,
a
n
(1 ≤
a
i
≤ 10
9
).
接下来是
q
台词。第
i
个包含三个整数
t
i
,
l
i
em>,
r
i
,其中
t
i
—输入
i
个查询, [
l
i
,
r
i
] —执行查询的段 (1 ≤
t
i
≤ 2, 1 ≤
l < sub>i
≤
r
i
≤
n
)。
印记
打印
m
数,
i
其中的数等于位置上的数
b
i
  ;在处理完所有请求之后。
<正文>
输入
输出
<分区> 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
1000
ms
256 Mb
Rules for program design and list of errors in automatic problem checking
Teacher commentary