문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

7081 : 반별 성적 통계

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

7081 : 반별 성적 통계

시간 1.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

BFStudy 학교에서 반별 성적을 분석하는 시스템이 필요합니다.
학생 데이터가 주어진 후 다음 쿼리를 처리하십시오.
- 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개의 줄에 반번호 이름 점수가 주어집니다. (점수: 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점 높음

도움

학생 정보를 students[name] = {'class': cls, 'score': score}와 classes[cls] = [...]의 두 딕셔너리로 이중 관리하면 쿼리 처리가 빠릅니다.
RANK 계산 시 자신보다 점수가 높은 학생 수 + 1이 순위입니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘