만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

이케바나

시간 제한2초메모리 제한512 MB

요약
n개의 대나무 순이 밤마다 b_i만큼 자랄 때, 정오에 모든 순의 높이를 h로 맞추는 최소 구간 자르기 횟수를 구합니다. 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 스택, 그리디
정답자
아직 제출이 없습니다

문제

베르란디아에 계몽의 시대가 열렸다. 긴 중세, 끊이지 않는 전쟁, 용, 아름다운 여인, 용에게서 여인을 구하는 기사, 그 밖의 영웅담에 지친 베르란디아 사람들은 꽃꽂이(이케바나)로 눈을 돌렸다. 올해 꽃꽂이 애호가들을 위한 대규모 대회가 열릴 예정이지만, 최근 끝난 중세의 여파로 심사위원단은 많은 어려움을 겪고 있다. 특히 베르란디아에서 꽃꽂이에 쓸 수 있는 식물은 마법의 대나무뿐이다.

심사위원단은 대회 규정을 확정했다. 대회는 mm일 동안 진행된다. 모든 참가자에게 같은 화단이 주어지며, 화단에는 nn개의 대나무 싹이 심어져 있다. 대회가 시작되는 첫날 5시에 각 참가자 화단에서 ii번째 싹의 높이는 aia_i이다. 매일 자정마다 ii번째 싹은 bib_i만큼 자란다. 첫날부터 매일 아침 정확히 6시에 각 참가자는 자기 화단의 대나무를 한 번 자를 수 있다. 자르는 방법은 다음과 같다. 참가자는 자르려는 싹 구간의 왼쪽 끝 ii와 오른쪽 끝 jj(1≤i≤j≤n1 \le i \le j \le n)를 고르고, 높이 ll(0≤l≤2×1090 \le l \le 2 \times 10^9)을 고른다. 그러면 ii번째부터 jj번째까지 싹 가운데 높이가 ll보다 큰 싹은 모두 높이 ll로 잘린다. 작품 비교는 mm번째 날 정오에 이루어진다. 우승자는 최소 횟수로 자르고도 화단의 nn개 싹 모두의 높이가 hh가 된 참가자이다.

심사위원단은 우승자가 대나무를 최소 몇 번 잘라야 하는지 알고 싶어 한다.

입력

첫 줄에 세 정수 nn(1≤n≤1051 \le n \le 10^5), mm(1≤m≤1091 \le m \le 10^9), hh(0≤h≤1090 \le h \le 10^9)가 주어진다. 이어지는 nn개의 줄에는 각각 두 정수 aia_i와 bib_i(0≤ai,bi≤1090 \le a_i, b_i \le 10^9)가 주어진다. 이는 ii번째 싹의 시작 높이와 밤마다 자라는 높이를 뜻한다.

출력

대회가 끝날 때 모든 대나무의 높이가 hh가 되는 데 필요한 최소 자르기 횟수를 출력한다. 불가능하면 −1-1을 출력한다.

힌트

첫 번째 예제에서는 결과를 확인하는 날이 대회가 시작한 날과 같다. 싹은 높이 3에 도달해야 하지만, 대나무는 자정에만 자라므로 5시부터 정오까지 높이는 2로 그대로이다. 자르기는 높이를 낮출 뿐이므로 목표에 도달할 수 없다.

두 번째 예제에서는 예를 들어 첫날 모든 싹을 높이 2로 자를 수 있다. 밤사이 모든 싹이 1씩 자라서 둘째 날 정오에 목표 높이가 된다.

예제2

  1. 예제 1

    입력
    1 1 3
    2 1
    
    예상 출력
    -1
    
  2. 예제 2

    입력
    2 2 3
    20 1
    10 1
    
    예상 출력
    1