7081 : 반별 성적 통계
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
BFStudy 학교에서 반별 성적을 분석하는 시스템이 필요합니다.
학생 데이터가 주어진 후 다음 쿼리를 처리하십시오.
-
-
-
-
[제약 조건]
• 학생 수 $: le N le 500$
• 점수: bash le ext{점수} le 100$ (정수)
• 쿼리 수 $: le Q le 100$
학생 데이터가 주어진 후 다음 쿼리를 처리하십시오.
-
AVG 반번호: 해당 반의 평균 점수 (소수점 둘째 자리, 없는 반은 NO_CLASS)-
TOP 반번호 K: 해당 반에서 점수 상위 K명의 이름 출력 (동점 시 이름 오름차순, 인원 부족 시 전원 출력, 없는 반은 NO_CLASS)-
RANK 이름: 전체 학생 중 해당 학생의 순위 (동점 시 공동 순위, 없으면 NO_STUDENT)-
COMPARE 반A 반B: 두 반의 평균을 비교하여 A반이 X.XX점 높음 또는 같음 출력[제약 조건]
• 학생 수 $: le N le 500$
• 점수: bash le ext{점수} le 100$ (정수)
• 쿼리 수 $: le Q le 100$
입력 설명
첫째 줄에 전체 학생 수 N이 주어집니다. (1 ≤ N ≤ 500)
이후 N개의 줄에
다음 줄에 쿼리 수 Q가 주어집니다. (1 ≤ Q ≤ 100)
이후 Q개의 쿼리가 주어집니다.
이후 N개의 줄에
반번호 이름 점수가 주어집니다. (점수: 0~100 정수)다음 줄에 쿼리 수 Q가 주어집니다. (1 ≤ Q ≤ 100)
이후 Q개의 쿼리가 주어집니다.
출력 설명
Q개의 줄에 걸쳐 각 쿼리의 결과를 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
6
1 Alice 90
1 Bob 80
2 Charlie 85
2 Dave 75
3 Eve 95
3 Frank 70
5
AVG 1
AVG 2
TOP 1 1
RANK Alice
COMPARE 1 2
출력 예시
COPY
복사되었습니다!
복사되었습니다!
85.00
80.00
Alice
2
1반이 5.00점 높음
도움
학생 정보를
RANK 계산 시 자신보다 점수가 높은 학생 수 + 1이 순위입니다.
students[name] = {'class': cls, 'score': score}와 classes[cls] = [...]의 두 딕셔너리로 이중 관리하면 쿼리 처리가 빠릅니다.RANK 계산 시 자신보다 점수가 높은 학생 수 + 1이 순위입니다.