Mortal Combat

면접 대비

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

요약
히어로를 한 명씩 보내서 보스를 쓰러뜨리는 문제이며, 잃는 히어로를 최소로 하는 순서를 찾고 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

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

문제

Vasya는 새 비디오 게임을 시작했다. 첫 번째 레벨이 끝날 때 그는 레벨 보스와 전투를 벌인다. 게임을 계속하려면 이 전투에서 이겨야 한다. Vasya에게는 n명의 영웅으로 이루어진 부대가 있고, i번째 영웅은 체력 hi와 공격력 ai를 가진다. 보스는 체력 H와 공격력 A를 가진다.

전투는 다음과 같이 진행된다.

  • Vasya에게 영웅이 더 이상 남아 있지 않으면 게임에서 진다.

  • 영웅이 한 명 이상 남아 있으면, 그중 아무나 한 명을 골라 보스와 싸우게 할 수 있다.

  • i번째 영웅을 골랐다면 전투는 다음과 같이 진행된다.

    • 영웅이 보스를 공격해 보스의 체력을 ai만큼 줄인다.
    • 보스가 아직 살아 있다면, 즉 체력이 0보다 크다면, 보스가 영웅을 공격해 영웅의 체력을 A만큼 줄인다.
    • 영웅과 보스가 모두 살아 있는 동안 공격이 반복된다.
  • 보스가 죽으면 전투가 끝나고 Vasya가 이긴다. 그렇지 않으면 모든 과정이 다시 반복된다.

Vasya는 게임의 첫 레벨에서 영웅을 너무 많이 잃고 싶지 않다. 그래서 잃는 영웅 수를 최소로 하도록 전투를 계획하려 한다. 보스를 물리치면서 잃을 수 있는 영웅 수의 최솟값을 구하자. 영웅을 모두 잃고서도 보스를 물리칠 수 없다면 -1을 출력한다.

예제를 살펴보자.

첫 번째 테스트에서 최적의 계획은 다음과 같다. 먼저 2번 영웅을 전투에 보낸다. 이 영웅은 보스를 세 번 공격해 체력을 12만큼 줄이고 죽는다. 그 뒤 Vasya는 3번 영웅을 보내야 하고, 3번 영웅은 즉시 보스의 체력을 6만큼 줄여 보스가 죽는다. 따라서 Vasya는 영웅을 한 명만 잃는다.

두 번째 테스트에서 Vasya는 영웅을 어떤 순서로 보내도 보스를 죽일 수 없다.

입력

입력은 여러 테스트 케이스로 이루어진다. 첫 줄에는 테스트 케이스의 수 t가 주어진다. (1 ≤ t ≤ 1000)

각 테스트 케이스는 다음과 같이 주어진다. 첫 줄에는 세 정수 n, H, A가 주어진다. 각각 Vasya가 가진 영웅 수, 보스의 체력, 보스의 공격력이다. (1 ≤ n ≤ 105, 1 ≤ H, A ≤ 109)

다음 n개 줄에는 두 정수 hi, ai가 주어진다. 각각 i번째 영웅의 체력과 공격력이다. (1 ≤ hi, ai ≤ 109)

한 입력 데이터의 모든 테스트 케이스에서 n의 합은 105을 넘지 않는다.

출력

각 테스트 케이스마다 Vasya가 보스를 물리치기 위해 잃어야 하는 영웅 수의 최솟값을 출력하거나, 보스를 물리칠 수 없다면 -1을 출력한다.

예제1

  1. 예제 1

    입력
    2
    4 18 4
    4 5
    9 4
    1 6
    3 3
    4 27 4
    4 5
    9 4
    1 6
    3 3
    
    예상 출력
    1
    -1