[USACO 2012 Mar G]Cows in a Skyscraper
题号:NC24323
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

A little known fact about Bessie and friends is that they love stair climbing races. A better known fact is that cows really don't like going down stairs. So after the cows finish racing to the top of their favorite skyscraper, they had a problem. Refusing to climb back down using the stairs, the cows are forced to use the elevator in order to get back to the ground floor. 
The elevator has a maximum weight capacity of W (1 <= W <= 100,000,000) pounds and cow i weighs C_i (1 <= C_i <= W) pounds. Please help Bessie figure out how to get all the N (1 <= N <= 18) of the cows to the ground floor using the least number of elevator rides. The sum of the weights of the cows on each elevator ride must be no larger than W.

输入描述:

* Line 1: N and W separated by a space.

* Lines 2..1+N: Line i+1 contains the integer C_i, giving the weight
of one of the cows.

输出描述:

* Line 1: A single integer, R, indicating the minimum number of
elevator rides needed.

* Lines 2..1+R: Each line describes the set of cows taking
one of the R trips down the elevator. Each line starts with
an integer giving the number of cows in the set, followed by
the indices of the individual cows in the set.
示例1

输入

复制
4 10
5
6
3
7

输出

复制
3

说明

INPUT DETAILS:
There are four cows weighing 5, 6, 3, and 7 pounds. The elevator has a
maximum weight capacity of 10 pounds.

OUTPUT DETAILS:
We can put the cow weighing 3 on the same elevator as any other cow but the
other three cows are too heavy to be combined. For the solution above,
elevator ride 1 involves cow #1 and #3, elevator ride 2 involves cow #2,
and elevator ride 3 involves cow #4. Several other solutions are possible
for this input.