#P155. [CTFPC-2] Lanterns

[CTFPC-2] Lanterns

题目描述

2se 给了你一道有趣的数据结构题——

维护两个序列 {an},{bm}\{a_n\},\{b_m\}m+m \to +\infty),支持以下操作 qq 次:

格式 描述
add i v bivb_i \gets v
update l r v aiai+v (lir)a_i \gets a_i+v\ (l \le i \le r)
inq i {an}\{a_n\} 末尾插入 bib_i(保证 bi1b_i \ne -1),然后 bi1b_i \gets -1
mninq bib_i{bn}\{b_n\} 中的最小非负值(保证存在且唯一),在 {an}\{a_n\} 末尾插入 bib_i,然后 bi1b_i \gets -1
mxinq bib_i{bn}\{b_n\} 中的最大值(保证存在且唯一),在 {an}\{a_n\} 末尾插入 bib_i,然后 bi1b_i \gets -1
ask l r 输出 al+al+1++ara_l + a_{l+1} + \ldots + a_r 的值

其中 {an}\{a_n\} 的初值给定,bib_i 初始时均为 1-1

输入格式

第一行两个正整数 n,qn,q

第二行 nn 个正整数 a1ana_1 \sim a_n

下面 qq 行,每行一个操作。

输出格式

对每个 ask 操作输出答案。

样例

1 16
5000
ask 1 1
add 2 400
add 4 300
add 6 200
add 8 100
inq 2
ask 1 2
mninq
ask 1 3
mxinq
ask 1 4
update 2 3 10000
ask 1 4
ask 2 4
ask 3 4
ask 4 4
5000
5400
5500
5800
25800
20800
10400
300

数据范围

  • 1n2×1051 \le n \le 2 \times 10^5
  • 1q2×1051 \le q \le 2 \times 10^5
  • 1ai1081 \le a_i \le 10^8
  • 1lrn+q1 \le l \le r \le n+q
  • 1i2×1051 \le i \le 2 \times 10^5
  • 1v1081 \le v \le 10^8
  • 保证同一个 bib_i 只会被赋给非负值最多一次。
  • rr 不超过当前 aa 数组的长度。