#P11504. [NordicOI 2018] French Fries

    ID: 12910 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>2018Special JudgeNordicOI(北欧)

[NordicOI 2018] French Fries

背景

译自 Nordic Olympiad in Informatics 2018 French Fries。

题目描述

有无限多的人站成一排,这排人向左右两边都无限延伸。开始时选择了 PP 个不同的人,并给他们每人一根薯条。由于这有些不公平,所以每个人会同时将自己得到的薯条分成两半,一半给左边的人,一半给右边的人。然后他们重复这个过程,再进行 T−1T - 1 次操作。如果一个人在经过这 TT 次操作后,拥有至少 LL 根薯条(其中 LL 不一定是整数),那么他就吃饱了。有多少人会吃饱?

输入格式

输入的第一行包含两个整数 PP 和 TT(1≤P≤3⋅1051 \leq P \leq 3 \cdot 10^5,1≤T≤5⋅1071 \leq T \leq 5 \cdot 10^7),以及一个浮点数 LL(10−4≤L≤1010^{-4} \leq L \leq 10)。

第二行的输入包含 PP 个不同的整数:这些整数表示最初得到薯条的人的编号。所有的人的编号值都在 00 到 10710^7 之间。

输出格式

输出一个整数:最终至少得到 LL 个薯条的人数。

如果答案 XX 在得到至少 0.8L0.8L 个薯条的人数和得到至少 1.2L1.2L 个薯条的人数之间,则视为正确答案。

2 1 0.74
0 2
1
4 100 0.1
1 2 3 11
13

提示

在第一个样例中,编号为 00 和 22 的人最初各有一根薯条。然后他们将这些薯条分成两半,并把一半给相邻的人,编号为 −1-1 和 33 的人将各得到 0.50.5 根薯条,而编号为 11 的人将得到 11 根薯条。吃饱的标准是 0.740.74 根薯条;因此,只有编号为 11 的人得到了足够的薯条。

在第二个样例中,答案 1313 是准确的,但任何介于 1212 到 1515 之间的输出都将被接受。


你的解法将在一组子任务上进行评分。每个子任务包含多个测试用例。要获得子任务的分数,你的解法必须通过子任务中的所有测试用例。

子任务 分数 限制条件
11 1010 P≤100P\leq 100,T≤100T\leq 100,所有初始编号都在 00 到 100100 之间
22 1414 P≤500P\leq 500,T≤100T\leq 100
33 1717 P≤3⋅105P\leq 3\cdot 10^5,T≤100T\leq 100
44 1313 P≤100P\leq 100,T≤105T\leq 10^5
55 2020 P≤500P\leq 500,T≤5⋅107T\leq 5\cdot 10^7
66 2626 P≤3⋅105P\leq 3\cdot 10^5,T≤5⋅107T\leq 5\cdot 10^7