题目名称 634. [GZOI2011] 组合式家具
输入输出 pack.in/out
难度等级 ★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 20
题目来源 Gravatarcqw 于2011-11-29加入
开放分组 全部用户
提交状态
分类标签
模拟
分享题解
通过:1, 提交:1, 通过率:100%
GravatarMakazeu 100 0.013 s 0.74 MiB C++
关于 组合式家具 的近10条评论(全部评论)

634. [GZOI2011] 组合式家具

★☆   输入文件:pack.in   输出文件:pack.out   简单对比
时间限制:1 s   内存限制:128 MiB

题目描述
你在一个组合式家具厂工作,这种组合式家具由各种形状不同的组件组成,例如:
1
图1 三种不同形状的组件
这些组件生产出来后将被自动装箱,组件按生产的次序落下,第一个组件落在箱子底部,其后的组件依次落下,直至组件接触到之前装入的组件或箱子底部。例如,假设组件按图1从左至右的次序生产出来,装箱结果将如图2左所示。假如按图1从右至左的次序生产出来,装箱结果将如图2右所示。
2
图2 不同的生产次序导致两种不同的装箱结果
由于箱子高度有限,如图2左,三个组件已经超过了箱子的高度,这种情况第三个组件及之后的组件需要用新的箱子来装。
你的工作是为自动装箱系统编写程序,根据组件生产的次序,输出装完这些组件后,每个箱子的组件堆叠的高度。
输入格式(Pack.in):
第一行是用空格分隔的三个整数n,w,b。n是一套家具的组件数,1<=n<=100,w和b是箱子的宽和高,1<=w<=10,1<=b<=100。接下来是n个组件的形状描述,按生产的次序排列,每个组件描述第一行是一个整数h,1<=h<=10且h<=b,接下来h行每行w个字符,描述组件的形状,“X”代表组件的部分,“.”代表空间。
输出格式(Pack.out):
m个整数(m代表装箱所需的箱子数),按装箱的次序输出m个箱子里组件的高度。
样例


Pack.in

Pack.out

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

9 6