A93152.「SDOI2012」体育课
省选/NOI-
官方
通过率:0%
时间限制:6.00s
内存限制:512MB
题目描述
又是一节体育课的时间了,有 n 个同学排成了一排。他们都很讨厌排在第一个位置的同学,于是后面的同学中比第一个高的都会产生一个高兴值,这个高兴值等于他的身高减去第一个同学的身高。当然比第一个同学矮的同学产生兴奋值为 0。
现在体育老师来了,他拥有神奇的魔法,现在他能做如下的三件事:
- 询问某段区间高兴值最大的那个是多少;
- 把某两个同学交换一下位置;
- 选取一段区间的人,把第一个人身高加上 t,第二个加上 2t,第三个加上 3t 以此类推。
但是体育老师不会数数,于是他找到你了,对于每一个询问,他要你帮他求出那个值。
输入格式
第一行两个整数 n,m,表示有 n 个人,有 m 个操作。
第二行 n 个整数,顺序输入每个人的身高 ai。
接下来 m 行,每行第一个数位一个 type 表示是做哪一件事情。
- 如果 type=1,那么接下来有两个整数 l,r,表示询问这段区间的最大的高兴值。
- 如果 type=2,接下来两个整数 a,b,表示交换这两个位置的人。
- 如果 type=3,接下来三个整数 l,r,t,表示把 l 个人的升高增加 t,l+1 个人增加 2t ...第 r 个人增加 (r−l+1)t。
输出格式
对于每个询问按照顺序输出每个操作 1 的答案。
输入输出样例
输入#1
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
输出#1
722 722 722 719
说明/提示
- 对于 20% 的数据,保证 1≤n,m≤5×103;
- 另有 10% 的数据,没有第三种操作;
- 另有 20% 的数据,没有第二种操作;
- 对于 100% 的数据,1≤n,m≤105,0≤t≤104,1≤ai≤108。