문제 4540 · 바이트 III
음원 재생 요청 심사
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
음악 스트리밍 서비스를 운영하는 보안 담당자는 재생 요청을 자동으로 심사하는 프로그램을 만들려 한다. 서비스에 등록된 음원은 1번부터 N번까지 번호가 붙어 있다. 각 음원에는 필요한 최소 이용 등급, 필요한 최소 나이, 재생을 허용하는 지역 코드, 긴급 차단 여부가 기록되어 있다. 모든 요청은 입력에 주어진 이 기록을 기준으로 독립적으로 심사한다. 이용 등급은 0, 1, 2 중 하나이며, 숫자가 클수록 높은 등급이다. 요청자의 이용 등급이 음원의 최소 이용 등급 이상이어야 등급 조건을 통과한다. 나이는 이미 계산된 정수로 주어지며, 요청자의 나이가 음원의 최소 나이 이상이어야 나이 조건을 통과한다. 생일이나 날짜를 이용해 나이를 다시 계산할 필요는 없다. 등급과 나이가 각각 최솟값과 같아도 해당 조건을 통과한다. 요청자의 지역 코드는 1부터 9까지의 정수다. 음원에 기록된 허용 지역 코드가 0이면 모든 지역에서 재생할 수 있다. 허용 지역 코드가 1부터 9까지라면 요청자의 지역 코드와 정확히 같아야 지역 조건을 통과한다. 숫자가 더 크거나 작다는 이유로 다른 지역에 대한 접근이 허용되지는 않는다. 긴급 차단 여부가 1인 음원은 요청자의 등급, 나이, 지역과 관계없이 재생을 거부한다. 긴급 차단 여부가 0이고 등급 조건, 나이 조건, 지역 조건을 모두 통과한 요청만 허용한다. 요청을 허용해도 이용 등급이나 음원 정보는 바뀌지 않으며, 재생 횟수 제한도 없다. 같은 요청이 여러 번 들어오면 매번 같은 결과를 내야 한다. 각 재생 요청에 대해 허용 여부를 입력 순서대로 출력한다. 요청에는 항상 등록된 음원의 번호가 주어지므로 존재하지 않는 음원을 처리하는 규칙은 필요하지 않다. 여러 조건을 동시에 통과하지 못하더라도 거부 이유를 출력하지 않고 판정 결과 하나만 출력한다.
입력
첫째 줄에 음원 수 N과 요청 수 Q가 주어진다. 다음 N개의 줄 중 i번째 줄에 음원 i의 최소 이용 등급 L_i, 최소 나이 A_i, 허용 지역 코드 R_i, 긴급 차단 여부 X_i가 주어진다. 다음 Q개의 줄에는 요청한 음원 번호 S, 요청자의 이용 등급 L, 나이 A, 지역 코드 R이 주어진다. 각 줄의 수는 공백으로 구분된다. 1 ≤ N, Q ≤ 10,000 0 ≤ L_i, L ≤ 2 0 ≤ A_i, A ≤ 99 0 ≤ R_i ≤ 9 X_i는 0 또는 1 1 ≤ S ≤ N 1 ≤ R ≤ 9 입력에 등장하는 모든 수는 정수다.
출력
각 요청에 대해 재생을 허용하면 ALLOW, 거부하면 DENY를 한 줄에 하나씩 출력한다. 총 Q개의 줄을 출력한다.
예제 입력 1
3 5 1 15 0 0 0 0 4 0 0 0 0 1 1 1 15 2 1 0 30 2 2 2 20 4 2 2 20 3 3 2 99 1
예제 출력 1
ALLOW DENY ALLOW DENY DENY
예제 입력 2
2 4 0 0 0 0 2 99 9 0 1 0 0 1 2 2 99 9 2 2 98 9 2 2 99 8
예제 출력 2
ALLOW ALLOW DENY DENY
힌트 펼치기
- 요청한 음원의 정보를 번호로 바로 찾을 수 있게 저장한다.
- 긴급 차단 상태와 세 가지 접근 조건을 모두 확인한다.
알고리즘 분류
구현조건 판정풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |