아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

시간 외 근무 멈춰!

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

요약
평시 근무는 평일만 가능할 때 모든 작업을 마감 기한 안에 끝내기 위해 필요한 최소 시간 외 근무 일수를 구하거나 -1을 출력한다.
난이도

보통10점 중 7점

유형
그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

오늘도 여러 체계의 개발 임무를 열심히 수행 중인 준민이에게 갑자기 새로운 개발 프로젝트가 들어왔다. 해당 개발 프로젝트는 총 NN개의 작업으로 이루어져 있으며, 각 작업은 t_it\_i의 근무일이 필요하며 개발 프로젝트가 시작한 이후 d_id\_i일이 지나기 전에 끝내야 한다. 그러나 평시 근무만으로는 모든 NN개의 작업을 시간 내에 끝내기 힘들어 보였던 준민이는 개인 정비시간을 포기하며 시간 외 근무를 하고자 한다.

개발 프로젝트는 월요일부터 시작하며, 평시 근무는 월요일부터 금요일까지만 진행한다. 시간 외 근무는 요일과 관계없이 매일 최대 한 번씩만 진행할 수 있으며, 시간 외 근무를 11회 진행하면 11일치 업무를 끝마칠 수 있다.

준민이는 이를 토대로 효과적인 일정을 짜고 싶었지만, 이미 프로젝트로 너무 바빠진 준민이는 일정을 짤 시간조차 없는 상태이다. 바쁜 준민이를 위해, 모든 작업을 마감 기한 전까지 끝내고자 할 때 해야 하는 최소 시간 외 근무 일수를 알려주자.

입력

첫 번째 줄에 작업의 개수 NN이 주어진다. (1≤N≤100,000)(1\leq N\leq 100\\,000)

두 번째 줄부터 N+1N+1번째 줄까지, 각 작업의 마감 기한을 나타내는 정수 d_id\_i와 작업에 걸리는 시간을 나타내는 정수 t_it\_i가 공백으로 구분되어 주어진다. (1≤d_i,t_i≤100,000)(1\leq d\_i,t\_i\leq 100\\,000)

출력

모든 작업을 마감 기한 전까지 끝낼 수 있도록 하는 최소 시간 외 근무 일수를 출력한다.

만약 어떻게 해도 마감 기한 전까지 모든 작업을 끝낼 수 없다면, −1-1을 출력한다.

예제2

  1. 예제 1

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

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