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 ]