3585 - 年度练兵

题目描述

A 是某航空部队的一名战士,他报名参加了年度大练兵。

练兵共有 D 天,每天有不同的项目,本次练兵的项目都设置在白天,晚上让大家休息。

A 在练兵开始之前一共获得了 N 包补给,第 i 包补给吃下去之后,可以让小 A 在当天获得值为 A_i 的体力。如果第 i 天白天演习结束后,小 A 还有值为 T_i 的体力值,由于晚上气温较低,第 2 天,他的体力值将会下降到 ⌊T_i/2⌋ (即:T_i/2 向下取整的结果)。

A 可以选择在任何一天吃掉补给,但练兵要求,每个人必须严格按照编号为 1 \sim N 的顺序,吃掉自己的补给。

假设小 A 在练兵开始时,体力值为 0。请设计一个吃掉补给的方案,使得小 AD 天中,体力值最小的那一天的体力值,尽可能的大。

请编程计算出,在所有吃掉补给的方案中,小 A 体力值最小的那天的体力值,最大是多少?

输入

1 行输入 2 个整数 ND

接下来 N 行,每行读入一个整数 A_i

输出

输出小 AD 天的演习中,体力值最小的那天的体力值,最大是多少。

样例

输入

5 5
10
40
13
22
7

输出

24

输入

5 8
24
27
39
38
18

输出

19

输入

20 50
47
28
85
9
100
62
41
72
11
66
54
38
14
66
36
24
38
8
2
66

输出

10
说明

样例 1 解释

如果小 A 选择在第 1 天吃完自己所有的补给。

那么第 1 天小 A 的体力值 =10+40+13+22+7=92

2 天小 A 的体力值 =92/2=46

3 天小 A 的体力值 =46/2=23

4 天小 A 的体力值 =23/2=11

5 天小 A 的体力值 =11/2=5

因此在这个方案下,小 A 体力值最小的那天的体力值为 5

上述方案不是最优方案,最优方案可以按照下面的顺序吃掉补给:

1 天,小 A 吃掉 1,2 号补给,体力值 =10+40=50

2 天,小 A 不吃补给,体力值 =50/2=25

3 天,小 A 吃掉 3 号补给,体力值 =25/2+13=12+13=25

4 天,小 A 吃掉 4 号补给,体力值 =25/2+22=12+22=34

5 天,小 A 吃掉 5 号补给,体力值 =34/2+7=17+7=24

在这个最优方案下,小 A 体力值最小的那天的体力值为 24,这个值是所有吃补给方案中,体力值最小那天的体力值的最大值,因此答案为 24

数据范围

对于 30\% 的数据,满足 1 \le N \le 501 \le D \le 10

对于 100\% 的数据,满足 1 \le N \le 5 \times 10^41 \le D \le 5 \times 10^41 \le A_i \le 10^6

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 435
通过人数 150
金币数量 0 枚
难度 基础


上一题 下一题