본문으로 이동
코드패스 by Devin.KR

문제 4529 · 킬로 III

끊기지 않는 안내 구간

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

한 버스 노선의 운행 경로를 출발점 0부터 종점 L까지의 직선으로 나타낸다. 경로 위의 위치는 거리로 구분하며, 정류장이 없는 위치도 경로에 포함된다. 노선 운영자는 경로 전체에 임시 안내 방송을 제공하려 한다. 안내 장치 하나를 설치하면 해당 장치가 담당하는 구간 안에서 방송을 들을 수 있다. 설치 후보는 N개다. i번째 후보의 담당 구간은 왼쪽 끝점 a_i와 오른쪽 끝점 b_i로 주어진다. 이 후보를 선택하면 a_i 이상 b_i 이하인 모든 위치가 안내된다. 구간의 양 끝점도 안내 범위에 포함된다. 후보마다 장치 하나만 설치할 수 있으며, 설치 비용은 모두 같다. 담당 구간을 늘리거나 줄이거나 다른 위치로 옮길 수는 없다. 서로 다른 후보의 담당 구간이 같을 수도 있다. 운영자는 선택한 장치들의 안내 범위를 합쳤을 때 0부터 L까지의 모든 위치가 포함되기를 원한다. 두 구간이 한 끝점에서 만나는 것은 허용된다. 예를 들어 한 구간이 위치 4에서 끝나고 다른 구간이 위치 4에서 시작하면 그 사이에는 안내가 끊긴 곳이 없다. 그러나 두 구간 사이에 길이가 양수인 빈틈이 있으면 조건을 만족하지 못한다. 정수 위치만 안내되는 것으로는 충분하지 않으며, 정수가 아닌 위치까지 모두 안내되어야 한다. 조건을 만족하도록 설치할 수 있는 장치 수의 최솟값을 구하는 프로그램을 작성한다. 모든 후보를 선택해도 경로 전체를 안내할 수 없다면 -1을 출력한다. 최소 개수를 만드는 후보 조합이 여러 개여도 개수만 출력하므로 조합 사이의 우선순위는 없다.

입력

첫째 줄에 정수 N과 L이 공백으로 주어진다. 1 ≤ N ≤ 20,000, 1 ≤ L ≤ 1,000,000이다.
다음 N개 줄의 i번째 줄에 정수 a_i와 b_i가 공백으로 주어진다. 0 ≤ a_i < b_i ≤ L이다. 후보 구간은 임의의 순서로 주어지며 같은 구간이 여러 번 주어질 수 있다.

출력

경로 전체를 안내하는 데 필요한 장치 수의 최솟값을 정수 하나로 출력한다. 불가능하면 -1을 출력한다.

예제 입력 1

5 12
0 4
3 8
0 6
6 10
9 12

예제 출력 1

3

예제 입력 2

3 9
0 3
4 8
7 9

예제 출력 2

-1

예제 입력 3

3 7
0 7
0 7
2 6

예제 출력 3

1
힌트 펼치기
  • 현재까지 빈틈없이 안내되는 구간의 오른쪽 끝점을 관리한다.
  • 현재 끝점 이하에서 시작하는 후보 중 가장 멀리 도달하는 후보를 선택한다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류그리디정렬

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)