题目描述
卡牌排序
题目描述
珅泽教育的小珅同学有 n 张卡牌,编号依次是 1~n。除了花色为“王”的卡牌没有点数之外,其他的卡牌都有一种花色和一个点数。花色为 JOKER(王)、spade(黑桃♠)、heart(红桃♥)、diamond(方块♦)、club(梅花♣)之一,点数为 1~13 之一。
游戏规定,不同花色的牌具有的优先级如下:
JOKER为第一优先级;spade为第二优先级;club和diamond为第三优先级;heart为第四优先级。
现在小珅要把所有卡牌进行排序,排序的规则为:
- 对于不同优先级的卡牌,优先级越高(数值越小),在卡牌中的位置越靠前;
- 对于同一优先级的卡牌,点数越小,在卡牌中的位置越靠前;
- 对于同一优先级且同一点数的卡牌,编号越小,在卡牌中的位置越靠前。
请你帮助小珅完成所有卡牌的排序。
输入描述
第一行包含一个整数 n,表示卡牌的张数。
接下来 n 行,其中第 i 行用来描述编号为 i 的卡牌,每行包含一个字符串 c,表示卡牌花色。如果 c 不为 JOKER,则还会有一个正整数 x 表示点数。保证 c 一定是 JOKER、spade、heart、diamond、club 之一。
输出描述
共 n 行,每行包含一个整数和一个字符串。第 i 行的整数和字符串表示排序之后第 i 张牌的原编号和花色。
样例 1
输入:
5
club 9
JOKER
diamond 6
spade 1
heart 12
输出:
2 JOKER
4 spade
3 diamond
1 club
5 heart
样例 2
输入:
5
club 6
JOKER
diamond 6
spade 1
heart 1
输出:
2 JOKER
4 spade
1 club
3 diamond
5 heart
原图在“输出数据 2”一栏仅写了 33,与本题要求的五行输出不符。这里完整保留了样例输入,并将输出按题目排序规则列出。
输入样例 #3
5
diamond 12
club 4
club 7
JOKER
JOKER
输出样例 #3
4 JOKER
5 JOKER
2 club
3 club
1 diamond
数据范围
- 对于 40% 的数据:1 ≤ n ≤ 1000。
- 对于 100% 的数据:1 ≤ n ≤ 10^5,1 ≤ x ≤ 13。