문제 3891 · 비트 III
접속 묶음의 처리 상태
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 게임 서버는 같은 파티에 속한 이용자들의 접속 요청을 하나의 묶음으로 처리한다. 묶음에 들어 있는 이용자 중 일부만 먼저 접속시키면 파티가 흩어질 수 있으므로, 요청한 이용자를 모두 접속시키거나 모두 기다리게 해야 한다. 서버가 동시에 수용할 수 있는 인원은 K명이고, 현재 접속한 인원은 C명이다. 이번 묶음에는 R명이 들어 있으며, 이 묶음을 처리하는 동안 기존 이용자가 나가거나 다른 요청이 들어오는 일은 없다. 서버에는 점검 여부를 나타내는 값 M도 있다. M이 1이면 점검 중이고, 0이면 점검 중이 아니다. 점검 중에는 남은 자리가 충분하더라도 새로운 접속을 허용하지 않는다. 따라서 가장 먼저 점검 여부를 확인해야 한다. 점검 중인 서버의 처리 상태는 STOP이다. 점검 중이 아니라면 현재 접속 인원과 이번 요청 인원의 합을 정원과 비교한다. 그 합이 K 이하이면 묶음 전체를 접속시킬 수 있으므로 상태는 ENTER이다. 합이 K보다 크면 묶음 전체를 기다리게 하므로 상태는 WAIT이다. 정원과 정확히 같은 인원이 되는 요청은 접속할 수 있다. 반대로 한 자리라도 부족하면 일부 인원만 접속시키는 처리는 하지 않는다. 이번 요청의 인원이 서버 정원보다 많을 수도 있으며, 이 경우에도 같은 규칙을 적용한다. 점검 중이라는 이유와 자리 부족이라는 이유가 동시에 성립하면 점검 상태인 STOP을 출력한다. 주어진 네 값으로 이번 요청 묶음의 처리 상태 하나를 결정하는 프로그램을 작성한다. 현재 접속한 이용자의 상태나 요청을 처리한 뒤의 인원수는 출력하지 않는다.
입력
첫째 줄에 정수 K, C, R, M이 공백으로 구분되어 주어진다. 1 ≤ K ≤ 1,000, 0 ≤ C ≤ K, 1 ≤ R ≤ 1,000이며 M은 0 또는 1이다.
출력
첫째 줄에 처리 상태를 나타내는 STOP, ENTER, WAIT 중 하나를 대문자로 출력한다. 모든 입력에서 출력할 상태는 정확히 하나 존재한다.
예제 입력 1
12 7 5 0
예제 출력 1
ENTER
예제 입력 2
8 6 3 0
예제 출력 2
WAIT
예제 입력 3
20 2 4 1
예제 출력 3
STOP
힌트 펼치기
- 점검 여부를 먼저 확인한 뒤, 점검 중이 아닐 때만 인원수를 비교한다.
관련 서재 장
알고리즘 분류
조건 분기풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |