CF63A Sinking Ship

题目描述

船撞上了礁石,正在下沉。现在,全体船员必须被撤离。所有 $n$ 名船员已经在一排站好(为方便起见,我们将他们从左到右分别用 $1$ 到 $n$ 的正整数编号),等待进一步指示。然而,撤离船员必须按照严格顺序进行。具体来说: 首先离船的是老鼠。然后是妇女和儿童(这两组有相同的优先级)。在那之后,所有男性才能撤离船只。最后一个离开沉船的是船长。 若对于任意两个船员,按照以上规则不能确定到底谁先离船,则排在左边(即编号更小)的人先离船。 对于每个船员,我们都知道他的身份和姓名。所有船员的姓名均不相同。请确定船员撤离的顺序。

输入格式

第一行包含整数 $n$,表示船员人数($1 \leq n \leq 100$)。接下来有 $n$ 行。第 $i$ 行包括两个单词——第 $i$ 位排队船员的姓名和他在船上的身份,单词间用一个空格隔开,且每行没有其他空格。姓名由拉丁字母组成,首字母大写,其余为小写,姓名长度 $1$ 到 $10$ 字符。身份有以下几种取值:rat(老鼠)、woman(妇女)、child(儿童)、man(男性)、captain(船长)。全体成员中恰好有一人是船长。

输出格式

输出 $n$ 行。第 $i$ 行应为第 $i$ 个离船的船员姓名。

说明/提示

由 ChatGPT 5 翻译