P83409

维护序列

难度 6 级 初三 区间操作、线段树
讨论 统计 1通过 2提交 50%通过率 旧版界面
时间限制 2 秒 内存限制 512 MB

题目描述

给定一个长度为 n 的序列 a,编号从 1 到 n。要求支持下面几种操作:

1.给一个区间 [l, r] 加上一个数 x;
2.把一个区间 [l, r] 里小于 x 的数变成 x;
3.把一个区间 [l, r] 里大于 x 的数变成 x;
4.求区间 [l, r] 的和;
5.求区间 [l, r] 的最大值;
6.求区间 [l, r] 的最小值。

输入

第一行一个整数 n 表示序列长度。

第二行 n 个整数 ai 表示初始序列。

第三行一个整数 m 表示操作个数。

接下来 m 行,每行三或四个整数,对应一个题目中所描述的操作。

输出

对于每个 4, 5, 6 类型的操作输出一行一个整数表示答案。

样例

样例 1
输入
2
1 2
2
2 1 2 2
4 1 2
输出
4

提示

Tab 缩进 · 提交后可在下方查看评测状态
请先登录后再提交