성적 산출
시간 제한1초메모리 제한128 MB
시험이 3개 이상이면 최저 점수를 제외한 학생 평균을 구하고, 반 평균과 표준편차로 학점 경계를 정한 뒤 보너스 점수와 결석으로 학점을 조정해 반 평균 평점을 계산해 출력한다.
문제
Chips 선생님은 자동으로 계산할 수 있는 간단한 성적 산출 방식을 사용한다. 학생들의 시험 점수, 보너스 점수, 출결 기록을 읽어 각 학생의 성적을 계산하고, 그 반의 평균 평점(grade point)을 출력하는 프로그램을 작성하라.
채점 방식은 다음과 같다. 모든 시험은 100점 만점이며, 각 시험 점수는 0 이상 100 이하의 정수이다. 시험을 2번보다 많이 치렀다면, 각 학생의 평균을 계산하기 전에 그 학생의 가장 낮은 시험 점수 하나를 버린다. 학생별 평균을 구한 뒤에는 반 전체의 평균(mean)과 표준편차(sd)를 계산한다.
등급 구분선은 반의 평균과 표준편차를 기준으로 정해진다.
- 평균이 (평균 1 표준편차) 이상이면 A,
- 평균이 (평균) 이상이고 (평균 1 표준편차) 미만이면 B,
- 평균이 (평균 1 표준편차) 이상이고 (평균) 미만이면 C,
- 평균이 (평균 1 표준편차) 미만이면 D이다.
학생이 모은 보너스 점수 2점마다 Chips 선생님은 그 학생의 계산된 평균을 3퍼센트포인트 올린다. 따라서 보너스가 1점인 학생은 전혀 오르지 않고, 4점이나 5점인 학생은 6퍼센트포인트 오르는 식이다(상승폭은 ). 보너스에 의한 상승은 등급 구분선이 정해진 뒤에 평균에 적용된다.
마지막으로 출결에 따라 등급을 조정한다. 결석 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명 이상)로 나눈다.
수 의 표준편차 sd는 다음과 같다.
여기서 는 목록의 평균이다. 계산된 표준편차가 1보다 작으면 Chips 선생님은 등급 계산에 1을 대신 사용한다.
예시: Chips 선생님에게 학생이 5명 있고 시험을 3번 치렀다고 하자. 아래 표는 각 학생의 시험 점수, 보너스 점수, 결석 횟수와 함께 계산된 평균(가장 낮은 시험 제외), 보정된 평균(보너스 반영), 보정 전 등급, 보정된 등급(출결 반영)을 보여준다. 구분선에 사용된 평균과 표준편차는 각각 69.0과 20.1이므로, 예를 들어 보정 전 B를 받으려면 평균이 69.0 이상이고 89.1 미만이어야 한다.
이 반의 평균 평점은 2.2이다.
입력
첫 번째 줄에는 반의 수를 나타내는 정수 ()이 주어진다.
각 반은 다음과 같이 주어진다. 첫 줄에는 두 정수 와 가 주어지며, 는 학생 수(), 는 치른 시험 수()이다. 이어지는 개의 줄은 각각 한 학생을 나타낸다. 각 줄에는 먼저 그 학생의 개 시험 점수(0 이상 100 이하의 정수)가, 그다음 보너스 점수가, 마지막으로 결석 횟수가 주어진다.
출력
각 반마다 한 줄씩, 그 반의 평균 평점을 소수 첫째 자리로 반올림하여 출력한다.