#148. [CTFPC-2nd] Lanterns

[CTFPC-2nd] Lanterns

版权声明

本题版权归 CTFPC 出题组 所有。

题目描述

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

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

格式 描述
add i v bi←vb_i \gets v
update l r v ai←ai+v (l≤i≤r)a_i \gets a_i+v\ (l \le i \le r)
inq i 在 {an}\{a_n\} 末尾插入 bib_i(保证 bi≠−1b_i \ne -1),然后 bi←−1b_i \gets -1
mninq 令 bib_i 为 {bn}\{b_n\} 中的最小非负值(保证存在且唯一),在 {an}\{a_n\} 末尾插入 bib_i,然后 bi←−1b_i \gets -1
mxinq 令 bib_i 为 {bn}\{b_n\} 中的最大值(保证存在且唯一),在 {an}\{a_n\} 末尾插入 bib_i,然后 bi←−1b_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 个正整数 a1∼ana_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

数据范围

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