문제 4740 · 바이트 II
충전소 작업 권한 모으기
댓글 0| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms | 측정하지 않음 | 0 | 0 | 0 | 0.00% |
문제
한 전기차 충전소에서는 작업자가 출입증을 단말기에 대고 필요한 작업을 선택한다. 보안 담당자는 출입증별 접근 규칙을 여러 관리 장치에서 모아 하나의 판정 프로그램에 전달한다. 관리 장치마다 담당 구역이 다르므로 같은 출입증에 관한 규칙이 여러 줄 나타날 수 있다. 입력에 적힌 모든 규칙은 현재 유효하며, 뒤에 나온 규칙이 앞의 규칙을 교체하지 않는다. 작업 종류는 충전 기록 조회, 충전기 설정 변경, 비상 잠금 해제의 세 가지다. 이 작업의 번호는 각각 1, 2, 3이고, 대응하는 값은 각각 1, 2, 4다. 각 규칙은 출입증 번호 b, 허용 코드 a, 금지 코드 d로 구성된다. 코드는 해당 작업에 대응하는 값을 더해 나타낸다. 예를 들어 코드 5는 조회와 비상 잠금 해제를 뜻하고, 코드 0은 어떤 작업도 지정하지 않았다는 뜻이다. 하나의 규칙에서 같은 작업이 허용 코드와 금지 코드에 함께 포함될 수도 있다. 작업 요청을 판정할 때는 그 출입증에 관한 모든 규칙을 확인한다. 요청한 작업이 어느 규칙에서든 한 번 이상 금지되어 있으면 거절한다. 금지된 적이 없고, 어느 규칙에서든 한 번 이상 허용되어 있으면 승인한다. 허용도 금지도 된 적이 없는 작업은 거절한다. 따라서 금지 규칙은 허용 규칙보다 항상 우선하며, 규칙이 전혀 없는 출입증의 요청도 거절한다. 각 요청은 출입증 번호와 작업 번호로 주어진다. 요청을 처리해도 규칙은 바뀌지 않으며, 앞선 요청의 승인 여부가 다음 요청에 영향을 주지 않는다. 보안 담당자가 확인할 수 있도록 입력된 순서대로 모든 요청의 승인 여부를 출력하는 프로그램을 작성한다.
입력
첫째 줄에 규칙 수 N과 요청 수 Q가 공백으로 구분되어 주어진다. N과 Q는 정수이며 1 ≤ N, Q ≤ 20,000이다. 다음 N개 줄에 규칙을 나타내는 정수 b, a, d가 주어진다. 1 ≤ b ≤ 999이고 0 ≤ a, d ≤ 7이다. 같은 규칙이 여러 번 주어질 수 있다. 다음 Q개 줄에 요청을 나타내는 정수 b, t가 주어진다. 1 ≤ b ≤ 999이고 1 ≤ t ≤ 3이다. 규칙에 등장하지 않은 출입증 번호도 요청에 등장할 수 있다.
출력
각 요청에 대한 결과를 입력 순서대로 한 줄에 하나씩 출력한다. 승인하면 ALLOW, 거절하면 DENY를 출력한다.
예제 입력 1
4 5 12 3 0 12 4 2 8 0 1 12 1 0 12 1 12 2 12 3 8 1 99 1
예제 출력 1
ALLOW DENY ALLOW DENY DENY
예제 입력 2
2 3 1 7 7 2 0 0 1 3 2 2 3 1
예제 출력 2
DENY DENY DENY
힌트 펼치기
- 출입증마다 지금까지 허용된 작업과 금지된 작업을 각각 합쳐 보관한다.
알고리즘 분류
구현비트마스크풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
댓글 0
로그인하면 댓글을 쓸 수 있습니다.
댓글 접기·펼치기
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| JavaScript | 브라우저 JavaScript | 1000ms / 테스트 | 측정하지 않음 |
| TypeScript | TypeScript 5.9.3 | 1000ms / 테스트 | 측정하지 않음 |
| Python 3 | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음 |
| C | YoWASP Clang 22 | 2000ms / 테스트 | 측정하지 않음 |
| C++ | YoWASP Clang 22 / libc++ | 2000ms / 테스트 | 측정하지 않음 |
| Java | OpenJDK javac + TeaVM (Java 21 문법) | 3000ms / 테스트 | 측정하지 않음 |
| Lua | Wasmoon 1.16.0 / Lua 5.4 | 3000ms / 테스트 | 측정하지 않음 |
| Ruby | Ruby 3.4 / ruby.wasm 2.10.1 | 5000ms / 테스트 | 측정하지 않음 |
| Scheme | BiwaScheme 0.8.3 | 5000ms / 테스트 | 측정하지 않음 |
| Prolog | SWI-Prolog / swipl-wasm 8.2.5 | 5000ms / 테스트 | 측정하지 않음 |
| Perl | Perl 5.28 / WebPerl 0.09-beta | 5000ms / 테스트 | 측정하지 않음 |