题号:NC213403
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld
题目描述
与之前不同,这次是一个简单的问题,让我们开始正式的题目。
我们拥有一个长度为n的数组,所有元素初始状态都为0。在这一题中,你拥有4个简单的小任务:
1、 将数组从下标l至r内所有的元素变成x。
2、 将数组从下标l至r内所有的元素都加上x。
3、 输出数组从下标l至r内所有的元素的最大值。
4、 输出数组从下标l至r内所有的元素的和。
输入描述:
第一行中,我们输入整数n(1 <= n <= 100000)与m(1 <= m <= 100000),表示数组的长度,与要进行的操作次数。
接下来的m行中,有如下4种格式:
1 l r x 将数组从下标l至r内所有的元素变成x。
2 l r x 将数组从下标l至r内所有的元素都加上x。
3 l r 输出数组从下标l至r内的元素的最大值。
4 l r 输出数组从下标l至r内所有的元素的和。
(0 <= l < r < n), (0 <= x <= 100000);
输出描述:
在每一次操作3或4中,输出所询问的问题,每一问一行。
示例1
输入
复制
5 8
1 0 2 3
2 2 3 2
4 1 2
2 1 4 1
1 0 1 2
4 0 2
4 3 4
3 0 4