#P4251. 「NordicOI 2018」French Fries

「NordicOI 2018」French Fries

题目描述

题目译自 NordicOI 2018 T2 「French Fries」

有无数的人站成一排,这排队伍向左右无限延伸。现在选出 PP 个人,每人分到一根薯条。为了公平起见,每个人同时把自己的薯条分成两半,分别给左右两边的人。这个过程重复 T−1T-1 次。如果在经过 TT 次分配后,一个人拥有的薯条数量至少为 LL(LL 不一定是整数),那么他就能吃饱。请问有多少人能吃饱?

输入格式

第一行输入包含两个整数 PP 和 TT (1≤P≤3⋅105,1≤T≤5⋅107)(1 \le P \le 3\cdot10^5, 1 \le T \le 5\cdot10^7),以及一个浮点数 LL (10−4≤L≤10)(10^{-4} \le L \le 10)。第二行包含 PP 个不同的整数,表示最初分到薯条的人的编号。这些编号的范围在 00 到 10710^7 之间。

输出格式

输出一个整数,表示最终至少拥有 LL 根薯条的人数。

如果你给出的答案 XX 在至少拥有 0.8L0.8L 根薯条的人数和至少拥有 1.2L1.2L 根薯条的人数之间,则视为正确。

2 1 0.74
0 2
1

在第一个样例中,编号为 00 和 22 的人最初各有一根薯条。分配后,编号为 −1-1 和 33 的人各有 0.50.5 根薯条,而编号为 11 的人有 11 根薯条。吃饱的标准是 0.740.74 根薯条,因此只有编号为 11 的人吃饱了。

4 100 0.1
1 2 3 11
13

在第二个样例中,答案 1313 是准确的,但任何在 1212 到 1515 之间的输出都视为正确。

数据范围与提示

详细子任务附加限制及分值如下表所示。

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