#P2621. [Usaco2012 Mar]Cows in a Skyscraper

[Usaco2012 Mar]Cows in a Skyscraper

题目描述

鲍茜和她的朋友们喜欢参加爬梯比赛,在这种比赛中,参与者需要爬上梯阶而不是下来。然而,没人知道的是,奶牛并不喜欢下楼梯。因此,当奶牛们完成了她们最喜欢的摩天大楼爬梯比赛之后,她们遇到了一个问题。奶牛拒绝使用楼梯下楼,所以她们只能搭乘电梯返回地面。

电梯的最大承重量为 WW1W100,000,0001 \leq W \leq 100,000,000)磅,而第 ii 头奶牛的重量为 CiC_i1CiW1 \leq C_i \leq W)磅。请帮助鲍茜找出如何使用最少的电梯次数将全部 NN 头(1N181 \leq N \leq 18)奶牛送至地面。每次乘坐电梯的奶牛重量之和必须不大于 WW

简易题面

给出 nnn18n\le 18)个物品,体积为 w1,w2,,wnw _ 1, w _ 2, \cdots, w _ n,现在要把它们分成若干组,要求每组的总体积小于等于 WW1ciW1081\le c_i\le W\le 10^8),问最少需要多少组。

输入格式

  • 第一行:用一个空格分隔的数字 NNWW
  • 第二行到 1+N1+N 行:第 i+1i+1 行包含一个整数 CiC_i,表示一头奶牛的重量。

输出格式

  • 一个整数 RR,表示需要的最少电梯次数。

示例

输入

4 10 
5 
6 
3 
7

输出

3

提示

这里有四头奶牛,重量分别为 5,6,35,6,377 磅。电梯的最大承重量为 1010 磅。

我们可以将重量为 33 的奶牛与其他任何一头奶牛一起搭乘电梯,但是其他三头奶牛的组合重量超过了电梯的承重量。

对于以上解决方案,第一次搭乘电梯的有奶牛编号 1133,第二次是奶牛编号 22,第三次是奶牛编号 44。对于这个输入,还有许多其他的解决方案。