首页 > 试题广场 >

组建一支最强篮球队

[编程题]组建一支最强篮球队
  • 热度指数:52 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 512M,其他语言1024M
  • 算法知识视频讲解
一位经验丰富的篮球教练正在为即将到来的锦标赛组建一支梦之队。
教练手上有一份候选球员名单,名单上的球员是按照球探考察的先后顺序排列的,每位球员都有一个综合实力评分。

现在,教练需要从这份有 N 名球员的名单中,挑选出 k 名球员组成最终的队伍。
挑选规则如下:
1. 必须维持球员被考察的相对顺序。也就是说,如果球员 A 在名单上的位置先于球员 B,那么在最终的队伍中,如果 AB 都被选中, A 的位置也必须在 B 之前。
2. 教练的目标是组建一支“实力最强”的队伍。两支不同的队伍(我们称之为队伍 A 和队伍 B)的实力比较方法如下:从两队的第一名球员开始逐一比较实力评分,在第一个出现评分差异的位置上,评分较高的球员所在的那支队伍,其实力就更强。

例如,一支评分为 [85, 92, 88] 的队伍,比另一支评分为 [85, 90, 95] 的队伍实力更强,因为在第二个位置上,92 > 90

您的任务是编写一个程序,帮助教练找出这支实力最强的 k 人队伍。

输入描述:
输入包含两行。

第一行是一串由空格分隔的整数,代表按顺序排列的候选球员的实力评分 P_1, P_2, \dots, P_N
第二行是一个正整数 k,代表需要组建的队伍的人数。
输入的评分必须是十进制整数,否则视为无效输入。

约束 :
候选名单的最大长度 N \le 2000
球员实力评分的范围: 0 \le P_i < 500
队伍人数 k 的范围: 1 \le k \le N


输出描述:
输出实力最强队伍的球员评分列表,各评分之间用空格隔开。
如果输入内容包含非十进制数字或格式错误,则输出 `error`。
示例1

输入

88 83 82 84 84 83 90 85
4

输出

88 84 90 85
示例2

输入

90 92 89 93
2

输出

92 93
示例3

输入

90 0x5A
2

输出

error

备注:
本题由牛友@Charles 整理上传

这道题你会答吗?花几分钟告诉大家答案吧!