#P1646. 序列操作

序列操作

题目描述

给定一个长度为 nn 的整数序列,你需要对序列进行 qq 次操作,每次操作为下列三种操作之一:

  1. 元素修改:修改当前序列中的某个数
  2. 元素删除:删除当前序列中的某个数,同时使序列的长度减 11
  3. 区间翻转:翻转当前序列中的若干位置连续的数

完成所有 qq 次操作后,请输出最终的序列

输入格式

第一行两个整数 n,qn,q,表示序列长度和操作次数

第二行 nn 个整数 a1,a2,,ana_1,a_2,…,a_n,表示序列中的数

接下来 qq 行,每行表示一次操作,

  • 1 x y 表示把当前序列中的第 xx 个数修改为 yy
  • 2 x 表示删除当前序列中的第 xx 个数
  • 3 l r 表示翻转当前序列中的第 ll 到第 rr 个数 .

保证每次操作均合法,即每个被操作的数均存在

输出格式

第一行一个整数 nn,表示最终序列的长度

第二行 nn 个整数,表示最终序列中的 nn 个数,相邻的数用一个空格隔开

5 3
1 2 3 4 5
2 3
1 2 3
3 2 4
4
1 5 4 3

数据范围

1n1000,1q1000,10000ai100001≤n≤1000,1≤q≤1000,−10000≤a_i​≤10000

1xn,10000y10000,1lrn1≤x≤n,−10000≤y≤10000,1≤l≤r≤n