시간 외 근무 멈춰!!!

시간 제한1초메모리 제한1024 MB

요약
데드라인이 모두 다른 N개의 작업이 있고 데드라인을 최대 K번 하루씩 늘릴 수 있을 때, 시간 외 근무 일수의 최솟값을 구하거나 불가능하면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
그리디, 정렬, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

전역 전까지 시간 외 근무 지옥에서 벗어나지 못한 준민이는, 결국 전역을 앞두고 남은 일들을 후임병인 민욱이에게 넘겨주고 말았다. 민욱이가 준민이에게 넘겨받은 작업은 총 NN개이며, 각 작업은 t_it\_i만큼의 작업량이 필요하고 각 작업의 데드라인은 d_id\_i일이다. 이때, 준민이에게 넘겨받은 작업들 중 데드라인이 동일한 작업은 없다고 한다.

민욱이의 근무는 월요일부터 시작하며, 평시 근무는 월요일부터 금요일까지만, 시간 외 근무는 모든 요일에 진행할 수 있다. 평시 근무와 시간 외 근무는 각각 하루에 최대 한 번씩 진행할 수 있으며, 진행할 때마다 원하는 작업 하나를 골라 11의 작업량을 처리할 수 있다.

후임병까지도 시간 외 근무를 해야 한다는 사실이 마음 아팠던 준민이는, 간부님 몰래 작업들의 데드라인을 조작하고자 한다. 데드라인을 11회 조작하면 원하는 작업의 데드라인을 11일 늘릴 수 있으며, 간부님에게 들키지 않기 위해 최대 KK번까지만 데드라인을 조작하고자 한다. 또한, 준민이가 데드라인을 조작하고 갔다는 사실을 간부님께 들키지 않기 위해, 민욱이는 모든 작업들을 초기 데드라인이 더 이른 순서대로 완료하기로 했다.

준민이가 데드라인을 최대 KK번 조작한 경우, 민욱이가 해야 하는 최소 시간 외 근무 일수를 구해주자.

입력

첫 번째 줄에 후임병이 해야 하는 작업 개수 NN과 데드라인 조작 횟수 KK가 공백으로 구분되어 주어진다.

이후 NN개의 줄에 걸쳐, i+1i+1번째 줄에 ii번째 작업의 데드라인 d_id\_i와 작업을 완료하는 데 필요한 작업량 t_it\_i가 공백으로 구분되어 주어진다.

출력

KK번 이하로 데드라인을 조작한 경우 민욱이가 해야 하는 최소 시간 외 근무 시간을 출력한다.

만약 어떻게 해도 시간 내에 작업을 종료할 수 없는 경우, -1을 출력한다.

제한

  • 1≤N≤200,0001 \le N \le 200\\,000
  • 0≤K≤1090 \le K \le 10^9
  • 1≤d_i≤200,0001\le d\_i \le 200\\,000
  • 1≤t_i≤200,0001\le t\_i \le 200\\,000
  • d_i≠d_jd\_i \neq d\_j; 1≤i<j≤N1\le i < j \le N
  • 모든 입력은 정수이다.

예제2

  1. 예제 1

    입력
    5 5
    2 1
    8 3
    6 1
    7 4
    10 1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    3 0
    5 3
    3 5
    4 3
    
    예상 출력
    -1