#P6136. 【模板】普通平衡树(数据加强版)

【模板】普通平衡树(数据加强版)

题目背景

本题是 P3369 数据加强版,扩大数据范围并增加了强制在线

题目的输入、输出和原题略有不同,但需要支持的操作相同。

题目描述

您需要动态地维护一个可重集合 MM,并且提供以下操作:

  1. MM 中插入一个数 xx
  2. MM 中删除一个数 xx(若有多个相同的数,应只删除一个)。
  3. 查询 MM 中有多少个数比 xx 小,并且将得到的答案加一。
  4. 查询如果将 MM 从小到大排列后,排名位于第 xx 位的数。
  5. 查询 MMxx 的前驱(前驱定义为小于 xx,且最大的数)。
  6. 查询 MMxx 的后继(后继定义为大于 xx,且最小的数)。

本题强制在线,保证所有操作合法(操作 22 保证存在至少一个 xx,操作 4,5,64,5,6 保证存在答案)。

输入格式

第一行两个正整数 n,mn,m,表示初始数的个数和操作的个数。

第二行 nn 个整数 a1,a2,a3,,ana_1,a_2,a_3,\ldots,a_n,表示初始的数

接下来 mm 行,每行有两个整数 opt\text{opt}xx'opt\text{opt} 表示操作的序号(1opt6 1 \leq \text{opt} \leq 6 ),xx' 表示加密后的操作数。

我们记 last\text{last} 表示上一次 3,4,5,63,4,5,6 操作的答案,则每次操作的 xx' 都要异或last\text{last} 才是真实的 xx。初始 last\text{last}00

输出格式

输出一行一个整数,表示所有 3,4,5,63,4,5,6 操作的答案的异或和

6 7
1 1 4 5 1 4
2 1
1 9
4 1
5 8
3 13
6 7
1 4

6

提示

样例解释

样例加密前为:

6 7
1 1 4 5 1 4
2 1
1 9
4 1
5 9
3 8
6 1
1 0

限制与约定

对于 100%100\% 的数据,1n1051\leq n\leq 10^51m1061\leq m\leq 10^60ai,x<2300\leq a_i,x\lt 2^{30}

本题输入数据较大,请使用较快的读入方式。


upd 2022.7.22\text{upd 2022.7.22}:新增加 99 组 Hack 数据。