1582_维护全序集

2022-5-16 18:17| 发布者: Hocassian| 查看: 39| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-2-89503993089300-Problem List-采集的数据-后羿采集器.html

Pro.ID

1582

Title

维护全序集

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1582

AC

3

Submit

4

Ratio

75.00%

时间&空间限制

  • Time Limit: 20000/10000 MS (Java/Others)     Memory Limit: 262144/262144 K (Java/Others)
  • 描述

    这是一道模板题,其数据比「普通平衡树」更强。

    如未特别说明,以下所有数据均为整数。

    维护一个多重集 S ,初始为空,有以下几种操作:

    1. 把 x 加入 S

    2. 删除 S 中的一个 x,保证删除的 x 一定存在

    3. 求 S 中第 k 小

    4. 求 S 中有多少个元素小于 x

    5. 求 S 中小于 x 的最大数

    6. 求 S 中大于 x 的最小数

    操作共 n 次。

    输入

    第一行一个整数 n,表示共有 n 次操作 。

    接下来 n 行,每行为以下几种格式之一 :

    • 0 x,把 x 加入 S

    • 1 x,删除 S 中的一个 x,保证删除的数在 S 中一定存在

    • 2 k,求 S 中第 k 小的数,保证要求的数在 S 中一定存在

    • 3 x,求 S 中有多少个数小于 x

    • 4 x,求 S 中小于 x 的最大数,如果不存在,输出 −1

    • 5 x,求 S 中大于 x 的最小数,如果不存在,输出 −1

    1 ≤ n ≤ 3×105 , 0 ≤ x ≤ 109

    输出

    Description

    这是一道模板题,其数据比「普通平衡树」更强。

    如未特别说明,以下所有数据均为整数。

    维护一个多重集 S ,初始为空,有以下几种操作:

    1. 把 x 加入 S

    2. 删除 S 中的一个 x,保证删除的 x 一定存在

    3. 求 S 中第 k 小

    4. 求 S 中有多少个元素小于 x

    5. 求 S 中小于 x 的最大数

    6. 求 S 中大于 x 的最小数

    操作共 n 次。

    Input

    第一行一个整数 n,表示共有 n 次操作 。

    接下来 n 行,每行为以下几种格式之一 :

    • 0 x,把 x 加入 S

    • 1 x,删除 S 中的一个 x,保证删除的数在 S 中一定存在

    • 2 k,求 S 中第 k 小的数,保证要求的数在 S 中一定存在

    • 3 x,求 S 中有多少个数小于 x

    • 4 x,求 S 中小于 x 的最大数,如果不存在,输出 −1

    • 5 x,求 S 中大于 x 的最小数,如果不存在,输出 −1

    1 ≤ n ≤ 3×105 , 0 ≤ x ≤ 109

    Output

    对于每次询问,输出单独一行表示答案。

    Sample Input

    5
    0 3
    0 4
    2 2
    1 4
    3 3

    Sample Output

    4
    0

    Author

    样例输入

    5
    0 3
    0 4
    2 2
    1 4
    3 3

    样例输出

    4
    0

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部