#P7898. [Ynoi2006] wcirq
[Ynoi2006] wcirq
题目描述
这是一道交互题。
你需要进行 个原始操作,对一个序列进行维护。初始序列为空。
第 个原始操作给出整数 ,表示在序列的第 个位置前插入元素 (若 则表示在序列末尾插入),然后查询序列中第 个元素构成的集合。
为了回答这些查询,你可以操作若干个集合。这些集合初始为空,编号为 到 的整数。
你可以花费 个单位的第一类代价进行插入操作:在编号为 的集合中插入元素 ,在回答第 个原始操作的查询前,需要保证 。
你可以花费 个单位的第二类代价回答查询:选取编号为 的集合,要求这些集合互不相交,且并集是查询的答案。
每次原始操作后,插入操作和回答查询的第一类/第二类代价不能超过当前子任务的代价上限 。每次原始操作的代价分别计算。
输入格式
你需要实现函数:
对于每次原始操作,这个函数被调用一次,参数 x l r
对应 。
输出格式
你可以调用函数:
调用 op1
表示执行一次插入操作;
对 依次调用 op2
表示回答查询。
在提交的代码中,你需要声明这两个函数。
此时序列为 ,编号1的集合为 ,第1次 solve
函数调用返回;
此时序列为 ,编号1的集合为 ,第2次 solve
函数调用返回;
此时序列为 ,编号1的集合为 ,编号2的集合为 ,第3次 solve
函数调用返回。