终于到了小学期的最后一次作业了,为了考验你对小学期的知识的掌握程度,我们决定在最后出一道终极的数据结构测试大家的代码能力。
你需要维护一个大小为 的int
范围内的自然数数组 (下标 ), 的全部元素一开始均为 。
然后你需要维护 以支持以下询问的操作:
0 x y
输出 区间的和;
1 x y
输出 区间的最大值;
2 x y
输出 区间的最小值;
3 x y
输出 区间的中位数(区间大小偶数则为中间两项的平均值);
4 x y
输出 区间没有出现的最小的自然数;
5 x y z
将 区间的值全部改为 ;
6 x y z
将 区间所有最大值所在下标位置的值改为 ;
7 x y z
将 区间所有最小值所在下标位置的值改为 ;
8 x
将数组恢复至 次询问之前的状态(输出也算一次询问)。