#P7426. [THUPC2017] 体育成绩统计

[THUPC2017] 体育成绩统计

题目背景

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

题目描述

对于大一的同学们来说,体育课的总评成绩由五部分组成:体育课专项成绩(满分 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 来记录同学们的课外长跑情况,根据对原始跑步数据进行筛选,得到课外长跑的合法次数,来最终确定此部分的成绩。

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

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

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

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

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

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

「阳光长跑」的合法次数与该部分得分的对应如下: | 分数 | 1010 | 99 | 88 | 77 | 66 | 44 | 22 | | :----------: | :----------: | :----------: | :----------: | :----------: | :----------: | :----------: | :----------: | | 次数 | [21,+)[21,+∞) | [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,+∞) | [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 位同学的学号;
  • 一个字符,M 或 F,若为 M 表示第 ii 位同学为男生,若为 F 则表示第 ii 位同学为女生;
  • 一个介于 005050 之间的非负整数 ss,表示第 ii 位同学的体育课专项成绩;
  • 一个形如 a'b" 的字符串,表示第 ii 位同学的期末长跑测试成绩为 aabb 秒;
  • 一个字符,P 或 F,若为 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\% 的数据,$n\le 10^4,0\le a,b\le 59,0\le c\le 100,m\le 1.5\times 10^5,0\le l\le 100,0\le s\le 10^6$。

版权信息

来自 THUPC(THU Programming Contest,清华大学程序设计竞赛)2017。