Chips 선생님은 자동으로 계산할 수 있는 간단한 성적 산출 방식을 사용한다. 학생들의 시험 점수, 보너스 점수, 출결 기록을 읽어 각 학생의 성적을 계산하고, 그 반의 평균 평점(grade point)을 출력하는 프로그램을 작성하라.
채점 방식은 다음과 같다. 모든 시험은 100점 만점이며, 각 시험 점수는 0 이상 100 이하의 정수이다. 시험을 2번보다 많이 치렀다면, 각 학생의 평균을 계산하기 전에 그 학생의 가장 낮은 시험 점수 하나를 버린다. 학생별 평균을 구한 뒤에는 반 전체의 평균(mean)과 표준편차(sd)를 계산한다.
등급 구분선은 반의 평균과 표준편차를 기준으로 정해진다.
학생이 모은 보너스 점수 2점마다 Chips 선생님은 그 학생의 계산된 평균을 3퍼센트포인트 올린다. 따라서 보너스가 1점인 학생은 전혀 오르지 않고, 4점이나 5점인 학생은 6퍼센트포인트 오르는 식이다(상승폭은 $\lfloor bonus / 2 \rfloor \times 3$). 보너스에 의한 상승은 등급 구분선이 정해진 뒤에 평균에 적용된다.
마지막으로 출결에 따라 등급을 조정한다. 결석 4회마다 등급이 한 단계 내려가고(A→B, B→C, C→D, D→F), 예를 들어 9회 결석하면 두 단계 내려간다. 학생은 F보다 아래로 내려갈 수 없다. 개근(결석 0회)한 학생은 등급이 한 단계 올라가지만 A보다 위로는 올라갈 수 없다.
Chips 선생님은 모든 계산 과정에서 결과를 항상 소수 첫째 자리로 반올림한다.
정리하면, 각 반에 대해 Chips 선생님은 시험을 2번보다 많이 치렀다면 각 학생의 가장 낮은 시험 점수를 버리고, 각 학생의 평균을 구하고, 반의 평균과 표준편차를 구하고, 보너스 상승을 평균에 적용하고, 구분선으로부터 각 학생의 등급을 정한 뒤, 마지막으로 출결에 따라 등급을 조정한다.
반의 평균 평점은 A마다 4점, B마다 3점, C마다 2점, D마다 1점, F마다 0점을 부여한다. 반의 점수를 모두 더한 뒤 학생 수(항상 2명 이상)로 나눈다.
수 $x_1, \dots, x_n$의 표준편차 sd는 다음과 같다.
$$sd = \sqrt{\frac{1}{n}\sum_{i=1}^{n}\left(x_i - \bar{x}\right)^2}$$
여기서 $\bar{x}$는 목록의 평균이다. 계산된 표준편차가 1보다 작으면 Chips 선생님은 등급 계산에 1을 대신 사용한다.
예시: Chips 선생님에게 학생이 5명 있고 시험을 3번 치렀다고 하자. 아래 표는 각 학생의 시험 점수, 보너스 점수, 결석 횟수와 함께 계산된 평균(가장 낮은 시험 제외), 보정된 평균(보너스 반영), 보정 전 등급, 보정된 등급(출결 반영)을 보여준다. 구분선에 사용된 평균과 표준편차는 각각 69.0과 20.1이므로, 예를 들어 보정 전 B를 받으려면 평균이 69.0 이상이고 89.1 미만이어야 한다.
| T1 | T2 | T3 | Bns | Abst | Avg | AdjAvg | Grade | AdjGrd |
|---|---|---|---|---|---|---|---|---|
| 100 | 100 | 80 | 3 | 2 | 100.0 | 103.0 | A | A |
| 80 | 80 | 80 | 0 | 5 | 80.0 | 80.0 | B | C |
| 60 | 20 | 70 | 5 | 3 | 65.0 | 71.0 | B | B |
| 40 | 40 | 40 | 5 | 0 | 40.0 | 46.0 | D | C |
| 100 | 20 | 20 | 1 | 9 | 60.0 | 60.0 | C | F |
이 반의 평균 평점은 2.2이다.
첫 번째 줄에는 반의 수를 나타내는 정수 $N$ ($1 \le N \le 10$)이 주어진다.
각 반은 다음과 같이 주어진다. 첫 줄에는 두 정수 $S$와 $T$가 주어지며, $S$는 학생 수($1 < S < 31$), $T$는 치른 시험 수($1 < T < 11$)이다. 이어지는 $S$개의 줄은 각각 한 학생을 나타낸다. 각 줄에는 먼저 그 학생의 $T$개 시험 점수(0 이상 100 이하의 정수)가, 그다음 보너스 점수가, 마지막으로 결석 횟수가 주어진다.
각 반마다 한 줄씩, 그 반의 평균 평점을 소수 첫째 자리로 반올림하여 출력한다.