3667:乐队的夏天
通过率 23%
时间限制 1000ms
内存限制 256MB
描述
领取了物业的精美礼品,小榔看距离晚餐还有一段时间,所以就觉得和朋友们一起看会电视,他们选择看他们都最喜欢的节目《乐队的夏天》了,这是个音乐综艺节目,这一期的结果是组队选拔,有n(n<=5000)组乐队来参加节目选拔,选拔的形式是表演三首歌曲,每组参加选拔的乐队表演的都是同样的三首歌,评委根据每个乐队的表现,分别给他们的三首歌曲打分(分数范围1-150分)。现在节目组告诉了你每个乐队的乐队名,以及他们三首歌曲的得分,想请你帮忙找出“水平相近”的乐队,以便他们安排两两对抗赛。“水平相近”指的是:两个乐队每首歌曲的得分差不大于5,且总分分差不大于10。
您需要先将所有乐队根据“水平相近”原则进行两两分组。然后输出每个分组中两个乐队的乐队名。
分组规则如下:
如果仅有两个乐队符合“水平相近”原则,则这两个乐队分为一组,输出时字典序小的先输出,字典序大的后输出;
如果某个乐队没有与其“水平相近”的其他乐队,则该乐队独自演出,一个一组,输出乐队名和SOLO;
如果出现多个乐队属于“水平相近”的队伍,例如A,B,C,D,E五组队伍中任意两个队伍都水平相近,则优先选择字典序较小的两只队伍分为一组,接着用相同规则对剩下的队伍进行分组,如果最后只剩下一只队伍,则参照规则2,剩下的队伍独立一组,输出乐队名和SOLO。
如果某只队伍和多支队伍“水平相近”,则优先选择多只队伍中字典序最小的进行分组。例如假设队伍A和队伍B,以及队伍C都“水平相近”,且队伍B的字典序比队伍C的字典序更小,则将队伍A和队伍B进行组队。
输入
第一行是一个整数n,n<=5000;
接下来n行,每行描述一个乐队的信息,包含一个字符串和三个整数,分别表示一个乐队名,以及三首歌的得分,字符串是长度不超过8,字符串中不包含空格。
输出
按照题目要求的输出顺序,输出所有的分组情况。
输入样例 1
4
apple 98 82 95
life 95 85 90
super 100 80 91
dream 90 90 150
输出样例1
apple life
dream SOLO
super SOLO
输入样例 2
4
apple 90 90 90
cool 91 91 95
baby 92 92 92
diary 96 86 91
输出样例2
apple baby
cool diary
提示
【样例说明1】:
apple乐队与life乐队,super乐队满足水平相近原则,但前两个乐队名字典序更小,所以apple乐队与life乐队组成对抗组,super乐队单独一组。dream乐队找不到水平相近的队伍,所以也单独一组。
【样例说明2】:
乐队apple与乐队baby和乐队cool都符合水平相近的原则,baby的字典序更小,所以乐队apple与乐队baby构成对抗组,而cool能够diary符合水平相近的原则构成对抗组。