문제 3890 · 바이트 V
스마트 홈 제어권 예약 검사
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
스마트 홈의 자동화 서버는 여러 생활 시나리오를 예약 실행한다. 생활 시나리오는 조명 밝기, 환기 강도, 실내 방송을 한꺼번에 바꿀 수 있다. 서로 다른 시나리오가 동시에 실행되어 설정을 덮어쓰는 일을 막기 위해, 이 집에서는 모든 시나리오가 하나의 공통 제어권을 독점하도록 정했다. 백엔드 담당자는 새로 전달된 예약 묶음 전체를 등록하기 전에 시간 충돌이 있는지 검사해야 한다. 각 예약에는 시작 시각 S와 종료 시각 E가 있다. 시각은 기준 시점에서 지난 시간을 분 단위 정수로 나타낸 값이다. 예약은 시작 시각에는 제어권을 사용하지만 종료 시각에는 제어권을 반납한다. 즉, 시각 t에 대하여 S 이상 E 미만일 때만 제어권을 사용한다. 한 예약이 끝나는 시각에 다른 예약이 바로 시작하는 것은 허용된다. 예를 들어 종료 시각이 18인 예약과 시작 시각이 18인 예약은 서로 충돌하지 않는다. 서로 다른 두 예약이 단 한 순간이라도 동시에 제어권을 사용하면 충돌이다. 시작 시각과 종료 시각이 모두 같은 두 예약도 서로 다른 요청으로 취급하므로 충돌한다. 어떤 예약의 실행 구간이 다른 예약의 실행 구간 안에 완전히 포함되는 경우도 충돌이다. 예약은 입력된 순서와 관계없이 지정된 시각에 실행되며, 이미 등록된 다른 예약은 없다고 가정한다. 검사 대상 묶음에 충돌하는 예약 쌍이 하나라도 있으면 묶음 전체를 등록할 수 없다. 이 경우 CONFLICT를 출력한다. 모든 예약을 서로 충돌하지 않게 실행할 수 있으면 READY를 출력한다. 예약을 삭제하거나 시각을 변경해서 충돌을 해소하는 작업은 수행하지 않는다. 주어진 예약 묶음의 등록 가능 여부를 판정하는 프로그램을 작성한다.
입력
첫째 줄에 예약 수 N이 주어진다. N은 1 이상 20,000 이하의 정수다. 다음 N개 줄에 각 예약의 시작 시각 S와 종료 시각 E가 공백으로 구분되어 주어진다. S와 E는 0 이상 1,000,000 이하의 정수이며 S < E다. 예약은 임의의 순서로 주어지고, 같은 예약이 여러 번 주어질 수 있다.
출력
충돌하는 예약 쌍이 있으면 CONFLICT를 출력하고, 없으면 READY를 출력한다. 영문 대문자로 된 단어 하나만 출력한다.
예제 입력 1
4 30 45 0 10 10 20 22 30
예제 출력 1
READY
예제 입력 2
3 7 24 12 15 24 29
예제 출력 2
CONFLICT
예제 입력 3
2 50 51 50 51
예제 출력 3
CONFLICT
힌트 펼치기
- 시작 시각 순서로 예약을 정렬한다.
- 다음 예약이 앞선 예약의 종료 시각보다 먼저 시작하는지 확인한다.
알고리즘 분류
정렬구간조건 분기풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |