QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 128 MB Total points: 100
[0]

# 7463. y-fast trie

Statistics

给定一个常数 C,你需要维护一个集合 S,支持 n 次操作:

  • 操作1:给出 x,插入一个元素 x,保证之前集合中没有 x 这个元素
  • 操作2:给出 x,删除一个元素 x,保证之前集合中存在 x 这个元素

每次操作结束后,需要输出 max,即从 S 集合中选出两个不同的元素,其的和 \bmod~C 的最大值,如果 S 集合中不足两个元素,则输出 EE

本题强制在线,每次的 x 需要 \operatorname{xor} 上上次答案 ,如果之前没有询问或者输出了 EE,则上次答案为 0

输入格式

第一行两个整数 n, C

接下来 n 行,每行有两个整数 1~x2~x,表示第一类或第二类操作。

输出格式

输出 n 行,第 i 行表示第 i 次操作结束后的答案。

样例数据

样例输入

7 9
1 2
1 3
1 0
1 14
2 14
2 13
1 1

样例输出

EE
5
8
8
8
5
7

子任务

Idea:zhouwc,Solution:ccz181078&nzhtl1477,Code:ccz181078&nzhtl1477,Data:nzhtl1477

注意:本题采用捆绑测试,只有当你通过一个 subtask 中的所有测试点后,你才能拿到这个 subtask 的分数。

对于其中 1\% 的数据,为样例 1。

对于另外 9\% 的数据,集合中元素个数 \le 1

对于另外 19\% 的数据,n\leq 500

对于另外 19\% 的数据,n\leq 10^4

对于另外 19\% 的数据,1\leq n,C \leq 10^5

对于 100\% 的数据,1\leq n \leq 5\times 10^51\leq C\leq 10737418230\leq x\leq 1073741823