#P3314. Plaque Pack

    ID: 2315 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 8 上传者: 标签>难度普及-贪心East Central North America 2006

Plaque Pack

描述
KnickKnick KnackKnack PlaquePlaque ShackShack 设计了各种形状独特的 plaquesplaques。所有 plaques 的厚度均为 11 英寸,形状多样(部分形状示例如下)。
BenBen FittFitt 是运输部门的员工之一(他们喜欢自称为 KnickKnick KnackKnack PlaquePlaque ShackShack PackPack)。每天他需要将特定宽度的 plaques 运输到各百货商店。他使用的盒子深度为 11,宽度与plaques plaques 的宽度相同。当 plaquesplaques 从装配线下来时,他需将它们依次装入盒子。每个 plaqueplaque 放入盒子时,会向下滑动直至其某部分接触到盒内已有的最上层 plaqueplaque(或盒底,若为第一个 plaqueplaque)。例如,若最左侧的 plaque 先从装配线下线,接着是中间和右侧的,它们会按左图方式堆叠;若按相反顺序下线,则按右图方式堆叠。
当某个 plaqueplaque 放入盒子后会超出盒子高度时,Ben 会关闭当前盒子并启封新盒。在上述示例中,若盒子高度为 1212,第一种顺序需两个盒子,第二种顺序仅需一个。在打包间隙,Ben 好奇如果让数百名程序员编写代码模拟这一单调工作会是什么样。

输入
输入包含多个测试用例。每个测试用例以一行三个整数 nnwwbb 开始,分别表示需运输的 plaquesplaques 数量、每个 plaqueplaque 的宽度和每个运输盒的高度,范围分别为 11001 \dots 1001101 \dots 1011001 \dots 100。接下来是 nnplaqueplaque 的形状描述:每个形状描述以一个整数 hh(表示 plaqueplaque 的高度,1h101 \leq h \leq 10hbh \leq b)开始,随后 hh 行每行包含 ww 个字符('X' 表示 plaqueplaque 的实体部分,'.' 表示空白)。输入中 plaqueplaque 的顺序即为装箱顺序,不可旋转或翻转 plaque。输入以行 00 0 0 0 0 结束。

输出
对每个测试用例,输出一行整数,表示每个盒子中 plaquesplaques 的最大高度(按装盒顺序)。

输入数据 1

3 5 12  
5  
XXXXX  
.XXXX  
..XXX  
...XX  
....X  
4  
XXX..  
..X..  
..XXX  
..X..  
6  
X....  
X....  
X....  
X....  
X....  
XXXXX  
3 5 12  
6  
X....  
X....  
X....  
X....  
X....  
XXXXX  
4  
XXX..  
..X..  
..XXX  
..X..  
5  
XXXXX  
.XXXX  
..XXX  
...XX  
....X  
0 0 0  

输出数据 1

9 6  
10  

来源
East Central North America 20062006