题目名称 314. [NOI 2004]郁闷的出纳员
输入输出 cashier.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarBYVoid 于2009-04-10加入
开放分组 全部用户
提交状态
分类标签
NOI 平衡树 树状数组 线段树
分享题解
通过:303, 提交:891, 通过率:34.01%
Gravatarnew ioer 100 0.218 s 12.69 MiB C++
Gravatar苏轼 100 0.233 s 1.29 MiB C++
Gravatar木留木留木 100 0.241 s 9.47 MiB C++
GravatarWCMG 100 0.254 s 5.15 MiB C++
GravatarAAAAAAAAAA 100 0.260 s 1.81 MiB C++
GravatarWCMG 100 0.261 s 5.15 MiB C++
GravatarZXCVBNM_1 100 0.262 s 2.60 MiB C++
GravatarZXCVBNM_1 100 0.263 s 2.60 MiB C++
GravatarZXCVBNM_1 100 0.269 s 2.60 MiB C++
Gravatarniconicoqaq 100 0.277 s 2.60 MiB C++
关于 郁闷的出纳员 的近10条评论(全部评论)
一句话debug 2小时。。。。。
GravatarHT008
2018-01-05 17:31 19楼
郁闷...
GravatarCSU_Turkey
2018-01-03 09:08 18楼
hahaha treap水过
全局lazy和新加的数要分清关系
注意建树过程和delete部分哦~~
Gravatar하루Kiev
2017-07-12 19:47 17楼
Gravatarxyz117
2017-06-08 19:16 16楼
想复杂了...
GravatarGo灬Fire
2016-12-14 21:36 15楼
这破题面!!我还以为我写出事故了!!!
GravatarRapiz
2016-12-06 18:00 14楼
再也不打SBT了,这次是纯照模板打的QAQ
Gravatar安呐一条小咸鱼。
2016-07-15 10:49 13楼
从七月调到八月,从家中调到学校,终于A了这道题
Gravatar/k
2015-08-09 20:36 12楼
为嘛只有我的程序find函数那么坑爹!!!!!!!!!!!!!!!!
Gravatar炽烈的爱
2015-08-08 07:11 11楼
我的平衡树咋这么慢......
Gravatar一個人的雨
2015-08-07 06:30 10楼

314. [NOI 2004]郁闷的出纳员

★★★☆   输入文件:cashier.in   输出文件:cashier.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工 作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把 他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。

工资的频繁调整很让员工反感,尤其是集体扣除工资的时候,一旦某位员工发现自己的工资已经低于了合同规定的工资下界,他就会立刻气愤地离 开公司,并且再也不会回来了。每位员工的工资下界都是统一规定的。每当一个人离开公司,我就要从电脑中把他的工资档案删去,同样,每当公司招聘了一位新员 工,我就得为他新建一个工资档案。

老板经常到我这边来询问工资情况,他并不问具体某位员工的工资情况,而是问现在工资第k多的员工拿多少工资。每当这时,我就不得不对数万个员工进行一次漫长的排序,然后告诉他答案。

好了,现在你已经对我的工作了解不少了。正如你猜的那样,我想请你编一个工资统计程序。怎么样,不是很困难吧?

【输入文件】

第一行有两个非负整数n和min。n表示下面有多少条命令,min表示工资下界。接下来的n行,每行表示一条命令。命令可以是以下四种之一:

  • 名称 格式 作用
  • I命令 I_k 新建一个工资档案,初始工资为k。如果某员工的初始工资低于工资下界,他将立刻离开公司。
  • A命令 A_k 把每位员工的工资加上k
  • S命令 S_k 把每位员工的工资扣除k
  • F命令 F_k 查询第k多的工资

_(下划线)表示一个空格,I命令、A命令、S命令中的k是一个非负整数,F命令中的k是一个正整数。 在初始时,可以认为公司里一个员工也没有。

【输出文件】

输出文件的行数为F命令的条数加一。

对于每条F命令,你的程序要输出一行,仅包含一个整数,为当前工资第k多的员工所拿的工资数,如果k大于目前员工的数目,则输出-1。

输出文件的最后一行包含一个整数,为离开公司的员工的总数。

不包括刚来就走的 20161206


【样例输入】

9 10
I 60
I 70
S 50
F 2
I 30
S 15
A 5
F 1
F 2

【样例输出】

10
20
-1
2

【约定】

  • I命令的条数不超过100000
  • A命令和S命令的总条数不超过100
  • F命令的条数不超过100000
  • 每次工资调整的调整量不超过1000
  • 新员工的工资不超过100000