2536 GPA
Time Limit : 2000/1000 MS(Java/Others) | Memory Limit : 65536/32768 KB(Java/Others)
Submits : 57 | Solved : 29
Description
一个大学生会参加若干个课程,对于每一个课程,他会获得一个特定的学分(ci)以及与其分数(si)对应的一个从A到F的标记(对应情况参看下表)。
------------------------------------------------------------------
A A- B+ B B- C+ C C- D D- F
------------------------------------------------------------------
4.0 3.7 3.3 3.0 2.7 2.3 2.0 1.7 1.3 1.0 0
------------------------------------------------------------------
若我们将各门课程的分数视作该课程的权值,则GPA是某个学生所参加的所有课程的加权平均分。换言之,
(c1*s1+c2*s2+...+ci*si+...+cn*sn)
GPA = --------------------------------------(此处横杠为分数线,上方为分子,下方为分母)
c1+c2+...+ci+...+cn
特殊情况:有些课程的裁定政策是“Pass/Not pass”,这就意味着参加该课程的学生通过课程考核则会获得一个“P”(Pass),反之则是“N”(Not pass)。这些课程不参与计算GPA值(也就是说,为了计算出正确的GPA值,这些特殊的课程必须被忽略)。特别地,如果计算后一个学生的GPA值为0,则输出结果应为“0.00”。
Input
有若干组测试数据,请运行到文件结束(EOF)。
每组测试数据的第一行为课程数量N(1<=N<=1000)。接下来的N行,每行包括一门课程的学分ci(1<=ci<10且ci为正整数)以及标记(标记形式参看题目描述)。
Output
对于每组测试,输出对应的GPA值(保留来两位小数)。
Sample Input
5
2 B
3 D-
2 P
1 F
3 A
2
2 P
2 N
6
4 A
3 A
3 A
4 A
3 A
3 A
10
2 A-
4 B+
3 A
1 P
2 C
3 C-
4 B-
2 P
3 N
1 B
Sample Output
2.33
0.00
4.00
2.92
HINT
GPA =(3.0 * 2 + 1.0 * 3 + 0.0 * 1 + 4.0 * 3)/(2 + 3 + 1 + 3) = 2.33
第二组测试数据:
因为GPA计算得出的学分值为0(P/N属于特殊情况),所以该生的GPA为“0.00”。
Source
NBU bling
[ Top ] | [ Submit ]