3238:搭积木

时间限制:2 S   /  内存限制:65536 KB
AC:43   /  Submit:163
问题描述

TQL喜欢玩积木,她想要使用两种类型的积木(正方体和圆柱体)叠成一座塔楼。除了塔顶的那块积木外,每块积木的正上方只和一块积木相邻。为了塔楼的稳定,从塔的正上方向下看时,每块积木的轮廓都要完全包含在相邻的下方积木的轮廓范围之内。问是否有可能建造这样的一座塔?如果有,这些积木需要按什么顺序堆放?

输入描述

多组案例。一个正整数n,表示案例的数量。(n<=100)

每组案例先是一个正整数m,表示积木的数量。(m<=100)

然后是m行数据,每行数据先是一个字符串a,然后是一个正整数b。如果a等于"cube"表示是正方体,此时b表示正方体的边长;如果a等于"cylinder"表示是圆柱体,此时b表示圆柱体的底面半径(注意圆柱体的高并不影响任何结果)。(b<=1000)

输出描述
针对每组案例,如果无解,则输出impossible;否则从塔楼的顶部到底部依次输出每块积木的信息,格式见【样例】。
样例输入复制样例

3

3

cube 7

cube 11

cylinder 5

2

cube 5

cylinder 3

3

cube 4

cylinder 2

cube 4

样例输出

Case 1:

cube 7

cylinder 5

cube 11

Case 2:

impossible

Case 3:

cylinder 2

cube 4

cube 4

提示说明

输出中的冒号是英文的冒号

相关

厦门大学嘉庚学院第八届编程大赛


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1