loj#P2404. 「THUPC 2017」体育成绩统计 / Score

「THUPC 2017」体育成绩统计 / Score

题目描述

正所谓「无体育,不清华」。为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心。然而每到学期期末时,面对海量的原始数据,如何对数据进行处理,得到同学们的体育总评成绩却又成了体育部老师的一大难题。

对于大一的同学们来说,体育课的总评成绩由五部分组成:体育课专项成绩(满分 5050 分)、长跑测试成绩(满分 2020 分)、「阳光长跑」成绩(满分 1010 分)、体质测试成绩(满分 1010 分)、「大一专项计划」成绩(满分 1010 分)。

体育课专项成绩将由任课体育老师直接给出。

长跑测试成绩将由期末长跑测试确定,其中男生需进行 30003000 米测试,女生需进行 15001500 米测试,具体评分标准为:

2020 1818 1616 1414 1212 1010 88 66 44 22
男生 123012'30'' 130013'00'' 133013'30'' 140014'00'' 143014'30'' 151015'10'' 155015'50'' 163016'30'' 171017'10'' 180018'00''
女生 6406'40'' 6576'57'' 7147'14'' 7317'31'' 7507'50'' 8058'05'' 8208'20'' 8358'35'' 8508'50'' 9009'00''

「阳光长跑」是通过手机 App 来记录同学们的课外长跑情况,根据对原始跑步数据进行筛选,得到课外长跑的合法次数,来最终确定此部分的成绩。

一条合法的锻炼记录需同时满足:

  1. 男生长跑距离 30003000 米以上(包含 30003000 米),女生长跑距离 15001500 米以上(包含 15001500 米);

  2. 平均速度(运动距离/(结束时间-开始时间))不慢于 22 米/秒,且不快于 55 米/秒;

  3. 总暂停时间不得超过 443030 秒;

  4. 平均步幅(距离/步数)不超过 1.51.5 米;

  5. 开始时间需与上条合法记录的结束时间间隔 66 小时以上(包含 66 小时);

「阳光长跑」的合法次数与该部分得分的对应如下:

分数 1010 99 88 77 66 44 22
次数 [21,+)[21,+\infty) [19,20][19,20] [17,18][17,18] [14,16][14,16] [11,13][11,13] [7,10][7,10] [3,6][3,6]

对于体质测试部分,若达到合格标准则得到该部分满分 1010 分,否则该部分不得分。

「大一专项计划」的 1010 分由两部分组成:出勤次数占 55 分,期末检测占 55 分。

其中出勤次数为「班级训练营」的参加次数和「阳光长跑」的合法次数之和,出勤得分与出勤次数的对应如下:

分数 55 44 33 22 11
次数 [18,+)[18,+\infty) [15,17][15,17] [12,14][12,14] [9,11][9,11] [6,8][6,8]

不难看出,要想准确无误地计算出每个人的体育成绩并不是一件轻松的事,于是体育部的老师找到了正在打校赛的你,他将提供所有需要用到的数据,希望你帮他算算清华大一同学的体育总评成绩及等级。

百分制成绩与等级、绩点对应如下:

A A- B+ B B- C+ C C- D+ D F
[95,100][95, 100] [90,95)[90, 95) [85,90)[85, 90) [80,85)[80, 85) [77,80)[77, 80) [73,77)[73, 77) [70,73)[70, 73) [67,70)[67, 70) [63,67)[63, 67) [60,63)[60, 63) [0,60)[0, 60)

输入格式

从标准输入读入数据。

输入第一行,包含一个正整数 nn,表示大一年级的学生人数。

接下来 nn 行,每行表示一位学生(按学号字典序给出),各项数据之间用空格隔开,一位学生的数据包括:

  • 一个长度为 1010 的正整数 pp(数据保证不包含前导零),表示第 ii 位同学的学号;

  • 一个字符,MF,若为 M 表示第 ii 位同学为男生,若为 F 则表示第 ii 位同学为女生;

  • 一个介于 005050 之间的非负整数 ss,表示第 ii 位同学的体育课专项成绩;

  • 一个形如 a'b" 的字符串,表示第 ii 位同学的期末长跑测试成绩为 aabb 秒;

  • 一个字符,PF,若为 P 表示第 ii 位同学的体质测试通过,若为 F 则表示第 ii 位同学的体质测试没有通过;

  • 一个介于 0055 之间的非负整数 ff,表示第 ii 位同学的「大一专项计划」的期末检测成绩;

  • 一个非负整数 cc,表示第 ii 位同学参加「班级训练营」的次数。

接下来一行,包括一个非负整数 mm,表示需要筛选的「阳光长跑」数据条数。

接下来 mm 行,每行表示一条需要筛选的「阳光长跑」数据(按开始时间顺序给出),各项之间用空格隔开,一条数据包括:

  • 一个形如 2017MMDD 的字符串,表示第 jj 条记录的完成日期;

  • 一个长度为 1010 的正整数 pp(数据保证不包含前导零),表示第 jj 条记录的来源学号;

  • 两个形如 hh:mm:ss 的字符串,分别表示第 jj 条记录的开始时间和结束时间;

  • 一个精确到小数点后两位的非负浮点数 ll,表示第 jj 条记录的运动距离,单位为千米;

  • 一个形如 a'b" 的字符串,表示第 jj 条记录的总暂停时间为 aabb 秒;

  • 一个非负整数 ss,表示第 jj 条记录的运动总步数。

输入格式可参见下发样例文件。

输出格式

输出到标准输出。

输出文件共包括 nn 行。请你按照学号字典序输出每一位同学的学号、百分制总评成绩以及等级。每位同学一行,一行内用空格隔开。

1
2015011233 M 34 14'30" P 3 3
8
20170508 2015011233 17:02:33 17:19:33 2.99 0'0" 3333
20170509 2015011233 17:12:15 17:38:46 3.01 2'3" 4300
20170510 2015011233 22:03:06 22:13:08 3.05 0'0" 2772
20170511 2015011233 22:08:05 22:28:13 3.02 5'3" 3775
20170512 2015011233 18:03:12 18:17:56 3.02 0'0" 2001
20170513 2015011233 17:30:23 17:46:08 3.01 0'0" 3020
20170513 2015011233 22:03:34 22:20:08 3.04 2'0" 3058
20170514 2015011233 07:16:22 07:32:34 3.00 0'0" 3244
2015011233 59 F

数据范围与提示

对于 100%100\% 的数据, n4000,n\leq{{4000}}, 0a,b59,0 \leq a,b \leq 59, 0c100,0 \leq c \leq 100, m1.5×105,m\leq{{1.5\times 10^5}}, 0l100,0 \leq l \leq 100, 0s1060 \leq s \leq 10^6