LOUIS0923 2024-07-30 09:42 采纳率: 50%
浏览 10
已结题

3667:乐队的夏天

3667:乐队的夏天
通过率 23%
时间限制 1000ms
内存限制 256MB
描述
领取了物业的精美礼品,小榔看距离晚餐还有一段时间,所以就觉得和朋友们一起看会电视,他们选择看他们都最喜欢的节目《乐队的夏天》了,这是个音乐综艺节目,这一期的结果是组队选拔,有n(n<=5000)组乐队来参加节目选拔,选拔的形式是表演三首歌曲,每组参加选拔的乐队表演的都是同样的三首歌,评委根据每个乐队的表现,分别给他们的三首歌曲打分(分数范围1-150分)。现在节目组告诉了你每个乐队的乐队名,以及他们三首歌曲的得分,想请你帮忙找出“水平相近”的乐队,以便他们安排两两对抗赛。“水平相近”指的是:两个乐队每首歌曲的得分差不大于5,且总分分差不大于10。

您需要先将所有乐队根据“水平相近”原则进行两两分组。然后输出每个分组中两个乐队的乐队名。

分组规则如下:

  1. 如果仅有两个乐队符合“水平相近”原则,则这两个乐队分为一组,输出时字典序小的先输出,字典序大的后输出;

  2. 如果某个乐队没有与其“水平相近”的其他乐队,则该乐队独自演出,一个一组,输出乐队名和SOLO;

  3. 如果出现多个乐队属于“水平相近”的队伍,例如A,B,C,D,E五组队伍中任意两个队伍都水平相近,则优先选择字典序较小的两只队伍分为一组,接着用相同规则对剩下的队伍进行分组,如果最后只剩下一只队伍,则参照规则2,剩下的队伍独立一组,输出乐队名和SOLO。

  4. 如果某只队伍和多支队伍“水平相近”,则优先选择多只队伍中字典序最小的进行分组。例如假设队伍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符合水平相近的原则构成对抗组。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月7日
    • 创建了问题 7月30日

    悬赏问题

    • ¥15 用verilog实现tanh函数和softplus函数
    • ¥15 求京东批量付款能替代天诚
    • ¥15 slaris 系统断电后,重新开机后一直自动重启
    • ¥15 51寻迹小车定点寻迹
    • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
    • ¥15 关于vue2中methods使用call修改this指向的问题
    • ¥15 idea自动补全键位冲突
    • ¥15 请教一下写代码,代码好难
    • ¥15 iis10中如何阻止别人网站重定向到我的网站
    • ¥15 滑块验证码移动速度不一致问题