UOJ Logo Universal Online Judge

UOJ

#170. Picks loves segment tree VIII

附件下载 统计

零点的钟声马上就要敲响,2016 年即将要拉开序幕,元旦老人轻手轻脚地来到了 picks 的床头,准备把他的礼物装进袜子里。

然而,picks 居然根本没有去睡觉!毫无防备的元旦老人落入了他的陷阱之中。

原来,picks 仰慕正义的元旦老人已经很久了,于是他决定把元旦老人抓来探♂讨哲♂学(病娇脸)。

在经过交涉之后,picks 答应,如果元旦老人能回答出他的一些问题,那么就放他走:

最开始 picks 有三个长度为 n 的完全相同的数列 A,BC,接下来有 m 次操作,每一次操作都是以下的六种之一:

  1. 对于所有的 i[l,r],将 Ai 变成 Ai+c
  2. 对于所有的 i[l,r],将 Ai 变成 max(Ai,d)
  3. 对于所有的 i[l,r],询问 Ai 的最小值。
  4. 对于所有的 i[l,r],询问 Bi 的最小值。
  5. 对于所有的 i[l,r],将 Ai 变成 min(Ai,e)
  6. 对于所有的 i[l,r],询问 Ci 的最大值。

在每一次操作结束之后,picks 都会进行一次更新:对于所有的 i[1,n],将 Bi 变成 min(Bi,Ai)Ci 变成 max(Ci,Ai)

然而留给元旦老人的时间已经所剩无几了,情急之下,他决定向你寻求帮助:你能帮他回答 picks 的问题吗。

输入格式

第一行两个数:n,m

接下来一行 n 个数 Ai。(最开始 Ai=Bi=Ci

接下来 m 行中,第 i 行第一个数 ti 表示操作类型:

ti=1,则接下来三个整数 li,ri,ci,表示操作一。

ti=2,则接下来三个整数 li,ri,di,表示操作二。

ti=3,则接下来三个整数 li,ri,表示操作三。

ti=4,则接下来一个整数 li,ri,表示操作四。

ti=5,则接下来三个整数 li,ri,ei,表示操作五。

ti=6,则接下来一个整数 li,ri,表示操作六。

输出格式

对于每个询问操作,输出一行表示答案。

样例一

input

3 6
1 2 3
4 3 3
1 2 3 -2
5 1 3 0
4 3 3
2 2 3 4
4 1 3

output

3
0
0

样例二

见附件下载。

限制与约定

对于所有数据,保证有 1n,m5×105,1lirin,2000ci2000109Ai,di,ei109

保证在任意时刻序列中的值在 int 范围内。

时间限制:6s

空间限制:128MB