loj#P3824. 「SDOI2012」体育课

「SDOI2012」体育课

题目描述

又是一节体育课的时间了,有 nn 个同学排成了一排。他们都很讨厌排在第一个位置的同学,于是后面的同学中比第一个高的都会产生一个高兴值,这个高兴值等于他的身高减去第一个同学的身高。当然比第一个同学矮的同学产生兴奋值为 00

现在体育老师来了,他拥有神奇的魔法,现在他能做如下的三件事:

  1. 询问某段区间高兴值最大的那个是多少;
  2. 把某两个同学交换一下位置;
  3. 选取一段区间的人,把第一个人身高加上 tt,第二个加上 2t2t,第三个加上 3t3t 以此类推。

但是体育老师不会数数,于是他找到你了,对于每一个询问,他要你帮他求出那个值。

输入格式

第一行两个整数 n,mn,m,表示有 nn 个人,有 mm 个操作。

第二行 nn 个整数,顺序输入每个人的身高 aia_i

接下来 mm 行,每行第一个数位一个 typetype 表示是做哪一件事情。

  • 如果 type=1type=1,那么接下来有两个整数 l,rl,r,表示询问这段区间的最大的高兴值。
  • 如果 type=2type=2,接下来两个整数 a,ba,b,表示交换这两个位置的人。
  • 如果 type=3type=3,接下来三个整数 l,r,tl,r,t,表示把 ll 个人的升高增加 tt,l+1l+1 个人增加 2t2t ...第 rr 个人增加 (rl+1)t(r-l+1)t

输出格式

对于每个询问按照顺序输出每个操作 11 的答案。

6 7
109 827 100 530 10 826
3 1 6 1
2 2 6
1 2 4
1 2 3
2 2 6
1 2 6
1 2 5
722
722
722
719

数据范围与提示

  • 对于 20%20\% 的数据,保证 1n,m5×1031 \le n,m \le 5 \times 10^3
  • 另有 10%10\% 的数据,没有第三种操作;
  • 另有 20%20\% 的数据,没有第二种操作;
  • 对于 100%100\% 的数据,1n,m1051 \le n,m \le 10^50t1040 \le t \le 10^41ai1081 \leq a_i \leq 10^8