传统题 1000ms 128MiB

秘密

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Description

dXqwq 是个急性子的女孩子。

她和一些朋友在一个社团里,这 n 个人都生活在数轴上互不相同的位置 ai

一些时候,某个人会收到一条秘密消息,他想要尽快把这些消息线下告诉每个人。所有人的移动速度都是 1 单位长度每秒,两个人在相同位置的时候可以交换消息,交换消息不消耗时间。

为了让大家能够尽快地收到新消息,dXqwq 想要让你编写一个程序,来计算所有人都收到消息需要花费的最小时间。

接下来 q 天,每天会发生以下三种事件的一种:

  • + x :一个位置为 x 的人加入了社团,保证此时没有人的位置为 x
  • - x:一个位置为 x 的人退出了社团,保证此时有人的位置为 x
  • ? x:一个位置为 x 的人收到了一条秘密消息,你需要求出所有人都收到消息的最小时间,保证此时有人的位置为 x

我们认为每一天结束后,所有人都会回到自己的初始位置。

Input Format

从文件 secret.in 中读入数据。

第一行输入两个整数 n,q

第二行输入 n 个整数 ai

接下来 q 行,每行输入一个字符 o 和一个整数 x,代表事件类型和参数。

Output Format

输出到文件 secret.out 中。

对于每个 o=? 的询问输出一行一个浮点数,代表所有人都收到消息的最小时间,保留两位小数。

3 6
1 3 5
? 3
- 3
? 5
+ 2
+ 4
? 2
2.00
2.00
1.50

Hint

样例

Input 1

3 6 1 3 5 ? 3 - 3 ? 5 + 2 + 4 ? 2

Output 1

2.00 2.00 1.50

Input 2

见下发的 secret2.in。 该样例满足测试点 4 的性质。

Output 2

见下发的 secret2.ans。 该样例满足测试点 4 的性质。

Input 3

见下发的 secret3.in。 该样例满足测试点 7 的性质。

Output 3

见下发的 secret3.ans。 该样例满足测试点 7 的性质。

数据范围

本题共 10 个测试点,全部测试点满足 2n,q1050ai,x109ai 互不相同,o=? 时社团至少有两个人,保证存在 o=?

测试点 n q 特殊限制
1 3 3 o=?
2 9 9 o=?
3 103 103 o=?
4 105 10 o=?
56 105 105 o=?
78 103 103
910 105 105

样例解释

对于第一次询问,社团里的人分别在 {1,3,5},只需要所有人都在 3 位置汇合即可。

对于第二次询问,社团里的人分别在 {1,5},仍然只需要所有人都在 3 位置汇合即可。

对于第三次询问,社团里的人分别在 {1,2,4,5},策略分为两步:

  • 前两个人向后走 1 秒,后两个人向左走 1 秒,分别到 {2,3,3,4},中间两个人传递信息。
  • 前两个人向对方走 0.5 秒,后两个人向对方走 0.5 秒,分别到 {2.5,2.5,3.5,3.5},此时所有人都收到信息,共花费 1.5 秒。

注意,本题不设 Special Judge,因为可以证明你的答案的小数点后第三位不是 4 或 5

Source

CSP-S 2024模拟题

CSP-S模拟题

未参加
状态
已结束
规则
ACM/ICPC
题目
4
开始于
2024-10-20 4:00
结束于
2024-10-30 8:00
持续时间
244 小时
主持人
参赛人数
0