#P1308. 超级书架

超级书架

题目描述

农场主约翰最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留有一点空间。所有N头奶牛都有一个确定的身高Hi。设所有奶牛身高的和为S,书架的高度为B,并且保证1≤B≤S。为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不像演杂技一般,一头站在另一头的背上,叠成一座“奶牛塔”。当然,这个塔的高度,就是塔中所有奶牛的身高之和。为了往书架顶上放东西,所有奶牛的身高和必须不小于书架的高度。塔叠得越高便越不稳定,于是奶牛们希望找到一种方案,使得叠出的塔在高度不小于书架高度的情况下,高度尽可能小。你也可以猜到你的任务了:写一个程序,计算奶牛们叠成的塔在满足要求的情况下,最少要比书架高多少。


输入格式

第一行两个整数:N(1≤N≤20)和B(1≤B≤S,S是所有奶牛身高的和);

第二行N个整数Hi(1≤Hi≤1000000)。

输出格式

输出一个非负整数,即奶牛们叠成的塔最少比书架高的高度。


输入/输出样例

5 16
3 1 3 5 6
1

样例解释

我们选用奶牛1,3,4,5叠成塔,她们的总高度为3+3+5+6=17。任何方案都无法叠出更低高度的塔,于是答案为1。


说明/提示

时间1000ms,内存256MiB