문제 3450 · 비트 III
보충 수업 좌석표
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 학원은 정규 수업이 끝난 뒤 학생별로 필요한 보충 활동을 안내한다. 보충 활동에는 질문 수업, 연습 수업, 복습 수업이 있다. 모든 학생에게 여러 활동을 한꺼번에 배정하면 이동 시간이 길어지므로, 학원은 학생마다 정확히 하나의 활동만 배정하거나 보충 활동 없이 귀가하도록 정했다. 담당자는 학생별 기록을 읽어 각 활동에 필요한 좌석 수를 계산하려고 한다. 학생 한 명의 기록은 확인 시험 점수 S와 미제출 과제 수 M으로 이루어진다. 점수와 과제 수는 모두 정수다. 확인 시험의 만점은 100점이고, 학생에게 부여된 과제는 모두 10개다. 미제출 과제 수는 아직 제출하지 않은 과제의 개수이며, 제출한 과제의 점수나 제출 시각은 배정에 영향을 주지 않는다. 활동 배정에서는 다음 규칙을 위에서부터 순서대로 적용한다. 먼저 S가 40 미만이면 질문 수업에 배정한다. 이 학생은 미제출 과제가 몇 개이든 질문 수업에만 참여한다. 질문 수업에 배정되지 않은 학생 중 M이 3 이상인 학생은 연습 수업에 배정한다. 앞의 두 활동에 배정되지 않은 학생 중 S가 70 미만인 학생은 복습 수업에 배정한다. 나머지 학생은 보충 활동 없이 귀가한다. 각 학생에게는 처음으로 성립하는 규칙 하나만 적용한다. 따라서 점수가 낮으면서 미제출 과제가 많은 학생을 두 수업의 인원에 동시에 포함해서는 안 된다. 점수가 40점이면 첫 번째 규칙에 해당하지 않으며, 점수가 70점이면 세 번째 규칙에 해당하지 않는다. 미제출 과제가 정확히 3개이면 두 번째 규칙의 수량 조건을 만족한다. 학생 기록은 입력에 주어진 순서대로 처리해도 되고 다른 순서로 처리해도 된다. 학생 사이의 점수 순위나 동점 여부는 배정에 영향을 주지 않으며, 각 수업의 좌석 수에는 제한이 없다. 전체 기록을 바탕으로 질문 수업, 연습 수업, 복습 수업, 귀가에 해당하는 학생 수를 각각 구한다.
입력
첫째 줄에 학생 수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 1,000이다. 다음 N개 줄에는 학생 한 명의 정수 S와 M이 공백으로 구분되어 주어진다. 0 ≤ S ≤ 100, 0 ≤ M ≤ 10이다.
출력
질문 수업 인원, 연습 수업 인원, 복습 수업 인원, 귀가 인원을 이 순서대로 공백으로 구분하여 한 줄에 출력한다. 해당하는 학생이 없는 항목은 0으로 출력한다.
예제 입력 1
6 39 8 40 3 69 2 70 2 100 0 20 0
예제 출력 1
2 1 1 2
예제 입력 2
3 40 0 55 1 69 2
예제 출력 2
0 0 3 0
예제 입력 3
1 70 3
예제 출력 3
0 1 0 0
힌트 펼치기
- 학생 한 명을 셀 때 네 개의 인원 중 정확히 하나만 증가시킨다.
관련 서재 장
알고리즘 분류
조건 분기구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |