Hecquyn đánh rồng

View as PDF

Submit solution

Points: 50.00
Time limit: 1.0s
Memory limit: 125M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
Assembly, Awk, Brain****, C, C++, Java, Pascal, Perl, Python, Sed, Text

Trong trận chiến này, dũng sĩ ~Hecquyn~ phải chiến đấu với một con rồng có nhiều đầu. Ban đầu rồng có ~x~ đầu. ~Hecquyn~ có thể thực hiện ~n~ loại đón đánh. Nếu anh ta đánh đòn thứ ~i~, thì sẽ chặt được ~min(d_i, curX)~ cái đầu của rồng, trong đó ~curX~ là số lượng đầu hiện có của rồng. Nhưng nếu sau đòn đánh này, rồng còn ít nhất một cái đầu, nó sẽ mọc thêm ~h_i~ cái đầu mới. Nếu ~curX = 0~ thì rồng bị tiêu diệt. Hecquyn có thể ra đòn bất kỳ theo trật tự bất kỳ.

Ví dụ:

Nếu hiện tại rồng có ~curX = 10~ cái đầu, và cú đánh của ~Hecquyn~ chặt được ~d = 7~ cái đầu rồng, và số đầu rồng có thể mọc thêm là ~h = 10~, thì sau cú đánh của ~Hecquyn~, số đầu của rồng sẽ là 13 (anh ấy chặt được 7 đầu, nhưng sau đó rồng mọc thêm 10 cái đầu mới).

Nếu ~curX = 10, d = 11, h = 100~ thì sau cú đánh của ~Hecquyn~, số đầu của rồng là 0 và rồng sẽ chết.

Hãy tính số đòn tối thiểu mà ~Hecquyn~ cần thực hiện để đánh bại con rồng!

Dữ liệu

Dòng đầu tiên của đầu vào chứa số nguyên T ~(1 \leq T \leq 100)~ là số bộ dữ liệu vào. Mỗi bộ dữ liệu vào gồm:

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~x (1 \leq n \leq 10^5, 1 \leq x \leq 10^9)~ tương ứng là số lượng các loại đòn đánh có thể của ~Hecquyn~ và số lượng đầu mà rồng có lúc ban đầu.
  • Dòng thứ ~i~ trong ~n~ dòng sau chứa mô tả về đòn đánh thứ ~i~ của ~Hecquyn~ gồm hai số nguyên ~d_i~ và ~h_i (1 \leq d_i, h_i \leq 10^9)~, với ý nghĩa là: Nếu ~Hecquyn~ đánh đòn thứ ~i~ thì sẽ chặt được ~d_i~ cái đầu rồng và rồng sẽ mọc thêm ~h_i~ cái đầu mới.

Kết quả

  • Ứng với mỗi bộ dữ liệu vào, chương trình của bạn cần in ra số đòn đánh tối thiểu mà ~Hecquyn~ phải thực hiện để đánh bại rồng. Nếu ~Hecquyn~ không thể đánh bại rồng thì in ra một số -1.

Ví dụ:

INPUT

3
3 10
6 3
8 2
1 4
4 10
4 1
3 2
2 6
1 100
2 15
10 11
14 100

OUTPUT

2
3
-1

Giải thích:

  • Bộ dữ liệu vào 1: Một cách đánh như sau, ~Hecquyn~ có thể thực hiện đòn đánh loại 1 (sau đó số đầu rồng là 10 - 6 + 3 = 7), và ~Hecquyn~ sẽ thực hiện đòn đánh loại 2. Rồng sẽ bị chết.
  • Bộ dữ liệu vào 2: ~Hecquyn~ chỉ cần thực hiện đòn đánh loại 1 ba lần và rồng sẽ chết.
  • Bộ dữ liệu vào 3: ~Hecquyn~ không thể đánh bại rồng

Loading...