图书管理系统
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Background
fzwer十分喜欢看书,但由于他经常要花很多时间刷题,所以常常没有时间整书。有一天,他在偶然之中得到了一个机器人,这个机器人可以帮助他整书,但是机器人的程序不知道被谁删掉了,所以fzwer希望你能帮他修复一下这个程序。
Description
每本书都有一个封面,封面上都写着这本书的书名,在本题中,所有书名都是不超过\(10^9\)的整数。
现在,fzwer有如下几种操作想让机器人学会完成:
1 插入一本书名为\(num\)的书;
2 删除一本书名为\(num\)的书;
3 给定书名\(num\),求它的排名;
4 给定整数\(r\),输出所有书中书名第\(r\)小的书的书名;
5 求\(num\)的前驱;
6 求\(num\)的后继;
7 随机抽取一本书,求书名的期望值。
Format
Input
第一行一个整数q,表示操作的数量。
接下来q行,每行两个数op,num,(操作7除外)分别表示操作的种类和操作的参数。
Output
按题目要求输出对应的答案,每行一个数。
Limitation
对于100%的数据:
总元素个数1<=n<=\(10^5\)
总询问个数1<=q<=\(10^5\)
操作类型1<=op<=6
操作参数0<=num<=\(10^9\)
书名1<=name<=\(10^9\)
保证所有数均为整数,且保证所有数据合法。
Time Limit:65ms
Memory Limit:512MB
Hint
操作5如果没有前驱的话就输出-inf(-1073741824/-0x3f3f3f3f);
操作6如果没有后继的话就输出inf(1073741824/0x3f3f3f3f);
操作7的输入只有一个数且输出方式为"%d/%d",且分数必须要是最简分数。特别的,当答案为整数时,请输出\(x/1\)。