#p197. 习题4.4.9 烤鱼
习题4.4.9 烤鱼
题目描述
小x掉到了一个jzyz的窨井里,这口井很深,没有人能听到小x的呼救,悲催的小x必须要等D天后,学校确认他失踪才会大规模寻找他,而这难熬的D天将是小x这一生最难过的D天。
不过幸运的是小x在井里得到了N (1 <= N <= 50,000) 条鱼,编号1..N.他计划在接下来的D (1 <= D <= 50,000)天按鱼的编号从小到大逐天吃,当然,小x可以一天连续吃多条鱼,也可以不吃。
** 为了不浪费,小x要求鱼必须吃完。。**
对于第i条鱼,小x的能量值会增加Hi(1 <= Hi <= 1,000,000)。小x会在白天吃鱼,一旦吃饱,他就会一觉睡到第二天。第二天醒来,她的能量值会变成前一天的能量值的一半(向下取整),小x的能量值是可以累加的。
小x比较注意维护每天能量的平衡,要刻意避免能量的大起大落,于是现在小x想知道,如何安排吃鱼,才能保证能量值最小的那个晚上(假设是第X个晚上),第X个晚上的能量值最大。
例如:有5条鱼,能量值分别是: (10, 40, 13, 22, 7).
小x按以下方式吃鱼,将会得到最优值:
| ·第几天 | ·醒来时能量值 | ·吃了鱼后能量值 | ·晚上睡觉能量值· |
|:---------: | :----------: | :---------: | :---------: |
| 1 |0 | 10+40 | 50 |
| 2 |25| --- | 25 |
| 3 |12| 13 | 25 |
|4 |12| 22 | 34 |
|5 |17| 7 | 24 |
可以看出,第1天吃了鱼1、鱼2,第2天不吃鱼,第3天吃了鱼3,第4天吃了鱼4,第5天吃了鱼5。 那么在这5个晚上,能量值最低的是第5个晚上,能量值是24,所以输出24。然后你还要输出第I (1<=i<=N)条鱼是小x第几天吃掉的。
输入格式
第1行:两个整数: N 和 D
第2..N+1行: 每行一个整数Hi。
输出格式
第1行: 一个整数, 在这D个晚上里,能量值最小的那个晚上(假设是第X个晚上),第X个晚上的能量值最大可以是多少?
第2.....N+1行: 每行一个整数,第 i 行表示第i条鱼是第几天被吃的。
样例数据
input
5 5
10
40
13
22
7
output
24
1
1
3
4
5
数据规模与约定
40% 保证 N,D<=200
100%数据如题目描述
时间限制:
空间限制: