序列问题[3]
时间限制:1秒 内存限制:256M
【题目描述】
给定一个长度为 \(n\) 的序列 \(a[1],a[2],…,a[n]\),每个序列的元素是一个整数。要支持以下三种操作:
1. 将 \(a[i]..a[j]\) 的所有数加上 \(v\)。
2. 将 \(a[i]..a[i]\) 翻转,比如 1 2 3 4 变成 4 3 2 1。
3. 求 \(a[i]..a[j]\) 的最大值。最开始所有元素都是 0。
【输入格式】
第一行两个整数 \(n,m\)。\(m\) 为操作个数。
以下 \(m\) 行,每行最多四个整数,依次为 \(k,i,j,v\)。\(k\) 表示是第几种操作,如果不是第 1 种操作则 \(k\) 后面只有两个数。对于每个第 3 种操作,给出正确的回答。
【输出格式】
对于每个第 3 种操作,给出正确的回答。
【输入输出样例】
Input
4 4
1 1 3 2
1 2 4 -1
2 1 3
3 2 4
Output
2
【数据限制】
对于 \(100\%\) 的数据,\(n≤50000\),\(m≤100000\),任何时候序列中元素的绝对值不超过 \(10^9\)。
【来源】
Mr.he**