#CSPJX07. 马拉松精英榜
马拉松精英榜
题目描述
“代码之城”国际马拉松大赛的报名人数超乎想象,最终有数百万名选手成功报名!面对如此庞大的参赛规模,主办方将比赛分散到数千个比赛日进行,并沿用备受好评的“马拉松精英榜”动态排名机制。
这个机制的核心在于,你无法预知未来的参赛者成绩,只能根据当天到达的数据,更新一个规模很小的精英榜。这要求你的程序必须能够高效地“在线”处理数据流,而不是等待所有数据到齐后进行一次性处理。
本次大赛共有 名选手,比赛将持续 天。每天参赛人数超过10人,每天的比赛流程如下:
- 在第一天,有 名选手参赛。比赛结束后,取其中成绩最好的前 名(用时最少的 位),组成最初的“马拉松精英榜”。
- 从第二天开始,当天参赛的 名新选手将与前一天精英榜上的 名选手一同进行虚拟排名。也就是说,需要从这 名选手中,找出成绩最好的 位,组成新一天的“马拉松精英榜”。
- 这个过程将持续 天。每天都将当天参赛的 名选手与前一天的精英榜选手进行比较,并更新精英榜。
你需要计算出在每天比赛结束后,“马拉松精英榜”上 前 位选手的成绩。请注意,比赛成绩用时越小,代表成绩越优秀。
输入格式
第一行,一个整数 ,表示比赛的天数。
接下来 行,每一行描述一天的比赛情况。每行的第一个整数为 ,表示第 天参赛的人数。随后是 个整数,代表这 名选手的比赛用时(单位为秒),整数之间用单个空格隔开。
输出格式
共 行,每行包含 个整数,表示当天精英榜上 位选手的成绩。每行内的整数按升序排列,整数之间用单个空格隔开。
3
12 305 280 320 299 311 275 330 291 301 308 288 350
11 285 295 270 302 315 268 296 307 289 318 293
13 300 286 292 310 265 278 298 303 271 281 290 306 266
275 280 288 291 299 301 305 308 311 320
268 270 275 280 285 288 289 291 293 295
265 266 268 270 271 275 278 280 281 285
数据规模与约定
样例说明
- 第一天: 12 名选手中成绩最好的 10 位组成精英榜。
- 第二天: 11 名新选手与旧榜单的 10 人(共21人)进行比较,更新榜单。
- 第三天: 13 名新选手与旧榜单的 10 人(共23人)进行比较,得出最终榜单。
数据范围
对于 的数据:
- 。
- 对于每一天,。
- 所有选手的成绩均为正整数,且在 位整型范围内。
- 所有天的参赛人数之和 ,保证 。