QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 1024 MB Points totaux : 100

#2693. 青少年建筑学

Statistiques

小彼得正在用他的玩具积木搭建一座塔。他使用了两种积木——立方体和圆柱体——并希望将它们全部堆叠成一座塔,其中除了最顶端的积木外,每个积木上方都恰好有一个积木。为了使塔保持稳定,从塔顶向下俯视时,每个积木的轮廓必须完全包含在下方积木的轮廓内(轮廓允许接触)。请问是否可以搭建这样一座塔?如果可以,积木应该按什么顺序堆叠?

Building blocks by Thaliesin on Pixabay

输入格式

输入包含: 一行一个整数 $n$ ($1 \le n \le 100$),表示积木的数量。 $n$ 行,每行描述一个积木。描述由一个表示积木类型的字符串(cubecylinder)和一个整数 $a$ ($1 \le a \le 1\,000$) 组成,表示积木的大小——如果积木是立方体,则 $a$ 为其边长;如果积木是圆柱体,则 $a$ 为其底面半径(注意圆柱体的高度无关紧要)。

输出格式

如果无法搭建该塔,输出 impossible。否则,输出 $n$ 行,给出从塔顶到底部的积木堆叠顺序。

样例

样例输入 1

3
cube 7
cube 11
cylinder 5

样例输出 1

cube 7
cylinder 5
cube 11

样例输入 2

2
cube 5
cylinder 3

样例输出 2

impossible

样例输入 3

3
cube 4
cylinder 2
cube 4

样例输出 3

cylinder 2
cube 4
cube 4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.