积木城堡
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目描述
XC 的儿子小 XC 最喜欢玩的游戏用积木垒漂亮的城堡。城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木。
小 XC 是一个比他爸爸 XC 还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒。所以他在垒城堡的时候总是遵循这样的规则。
小 XC 想把自己垒的城堡送给幼儿园里漂亮的女孩子们,这样可以增加他的好感度。为了公平起见,他决定送给每个女孩子一样高的城堡,这样可以避免女孩子们为了获得更漂亮的城堡而引起争执。
可是他发现自己在垒城堡的时候并没有预先考虑到这一点。所以他现在要改造城堡。由于他没有多余的积木了,他灵机一动,想出了一个巧妙的改造方案。他决定从每一个城堡中挪去一些积木,使得最终每座城堡都一样高。为了使他的城堡更雄伟,他觉得应该使最后的城堡都尽可能的高。
任务:
请你帮助小 XC 编一个程序,根据他垒的所有城堡的信息,决定应该移去哪些积木才能获得最佳的效果。
注意:一座城堡的高度,是组成它的所有积木的棱长之和。
输入格式
第一行是一个整数 ,表示一共有 座城堡。
以下 行每行是一系列非负整数,用一个空格分隔,按从下往上的顺序依次给出一座城堡中所有积木的棱长。用 -1 结束。
输出格式
一个整数,表示最后城堡的最大可能的高度。
如果找不到合适的方案,则输出 。
2
2 1 -1
3 2 1 -1
3
提示
【数据范围】
对于 的数据,,一座城堡中的积木不超过 块,每块积木的棱长不超过 。
【蒙青创】2025年CSP-J/S 冲刺【背包DP】
- Status
- Done
- Problem
- 23
- Open Since
- 2025-9-13 0:00
- Deadline
- 2025-10-18 23:59
- Extension
- 24 hour(s)