CF85D.Sum of Medians
提高+/省选-
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
In one well-known algorithm of finding the k-th order statistics we should divide all elements into groups of five consecutive elements and find the median of each five. A median is called the middle element of a sorted array (it's the third largest element for a group of five). To increase the algorithm's performance speed on a modern video card, you should be able to find a sum of medians in each five of the array.
A sum of medians of a sorted k-element set S = {_a_1, _a_2, ..., a__k}, where _a_1 < _a_2 < _a_3 < ... < a__k, will be understood by as

The
operator stands for taking the remainder, that is
stands for the remainder of dividing x by y.
To organize exercise testing quickly calculating the sum of medians for a changing set was needed.
在一种著名的求第 k 小元素(即第 k 个顺序统计量)的算法中,我们需要将所有元素划分为若干组,每组包含五个连续元素,并求出每组的中位数。此处中位数定义为该组排序后数组的中间元素(对五个元素组成的组而言,即第三大的元素)。为了提升该算法在现代显卡上的运行性能,你需要能够快速计算数组中每个五元组的中位数之和。
对于一个已排序的 k 元集合 S={a1,a2,…,ak}(其中 a1<a2<a3<⋯<ak),其中位数之和定义为:

其中符号
表示取余运算,即
表示 x 除以 y 所得的余数。
为高效地组织练习测试,需要能快速计算一个动态变化集合的中位数之和。
输入格式
The first line contains number n (1 ≤ n ≤ 105), the number of operations performed.
Then each of n lines contains the description of one of the three operations:
- add x — add the element x to the set;
- del x — delete the element x from the set;
- sum — find the sum of medians of the set.
For any add x operation it is true that the element x is not included in the set directly before the operation.
For any del x operation it is true that the element x is included in the set directly before the operation.
All the numbers in the input are positive integers, not exceeding 109.
第一行包含一个整数 n(1≤n≤105),表示执行的操作次数。
接下来的 n 行,每行描述以下三种操作之一:
add x— 将元素 x 加入集合;del x— 从集合中删除元素 x;sum— 计算集合所有中位数的总和。
对于任意 add x 操作,保证在该操作执行前,元素 x 不在集合中。
对于任意 del x 操作,保证在该操作执行前,元素 x 已在集合中。
输入中的所有数字均为正整数,且不超过 109。
输出格式
For each operation sum print on the single line the sum of medians of the current set. If the set is empty, print 0.
Please, do not use the %lld specificator to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams (also you may use the %I64d specificator).
对于每个 sum 操作,请在单独一行输出当前集合中所有中位数的和。如果集合为空,则输出 0。
请注意,在 C++ 中请勿使用 %lld 格式说明符来读取或写入 64 位整数。推荐使用 cin 和 cout 流(您也可以使用 %I64d 格式说明符)。
输入输出样例
输入#1
6 add 4 add 5 add 1 add 2 add 3 sum
输出#1
3
输入#2
14 add 1 add 7 add 2 add 5 sum add 6 add 8 add 9 add 3 add 4 add 10 sum del 1 sum
输出#2
5 11 13
输入解题思路,AI测评打分。不知道怎么写?