#ASC202628. 计时赛成绩汇总
计时赛成绩汇总
题目背景
一次智能车计时赛允许每辆车跑三次成绩。每次运行记录用时和出界次数;出界会增加罚时。现在需要从原始记录生成最终成绩表。
题目描述
共有 n 辆车,每辆车有唯一的车辆编号,并有三次运行记录。一次记录包含用时 t(毫秒)和出界次数 c。若 t 为 0,表示本次运行无效;否则本次成绩为 t + p × c,其中 p 为每次出界的罚时。
一辆车的最终成绩为三次运行中有效成绩的最小值。三次运行均无效的车辆不参与排名。
将参与排名的车辆按最终成绩从小到大排列;成绩相同时,按车辆编号从小到大排列。最终成绩相同的车辆名次相同,下一名次按其在排序结果中的位置继续计数。例如,成绩排列为 100、200、200、300 时,名次依次为 1、2、2、4。
输入格式
第一行包含两个整数 n、p,分别表示车辆数量和每次出界的罚时。
接下来 n 行,每行包含七个整数 id t1 c1 t2 c2 t3 c3,依次表示车辆编号、第一次用时与出界次数、第二次用时与出界次数、第三次用时与出界次数。
输出格式
第一行输出参与排名的车辆数量 m。
接下来 m 行,每行输出三个整数 rank id score,依次表示名次、车辆编号和最终成绩,按排名顺序输出。若 m 为 0,只输出一行 0。
样例
5 1000
12 10000 1 0 0 13000 0
7 11500 0 12000 0 0 0
3 10500 1 11000 0 11200 0
20 0 0 0 0 0 0
15 10800 0 10900 0 10500 0
4
1 15 10500
2 3 11000
2 12 11000
4 7 11500
样例解释
编号 15 的车第三次成绩为 10500,是其最佳成绩。编号 3 的车第二次成绩为 11000,比第一次含罚时的 11500 更好;编号 12 的车成绩也为 11000,因此两车并列第 2 名。编号 20 的三次运行均无效,不参与排名。
数据范围
1 ≤ n ≤ 10000,0 ≤ p ≤ 1000000。车辆编号互不相同且在 1 到 1000000000 之间。0 ≤ t1、t2、t3 ≤ 1000000000;0 ≤ c1、c2、c3 ≤ 1000000。当某次用时为 0 时,对应出界次数也为 0。计算成绩时请注意使用足够大的整数类型。
时间限制:1 秒;内存限制:256 MiB。