11605. Ланчбокси


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Магазин продає \(N\) видів ланчбоксів, по одному кожного виду. Для кожного \(i = 1, 2, \ldots, N\), \(i\)-й вид ланчбоксу містить \(A_i\) котлет і \(B_i\) пончиків.

Степан хоче з'їсти \(X\) або більше котлет і \(Y\) або більше пончиків. Визначте, чи можна купити деяку кількість ланчбоксів, щоб отримати принаймні  \(X\) котлет і хоча б \(Y\) пончиків.

Якщо можливо, знайдіть мінімальну кількість ланчбоксів, які Степан повинен купити, щоб отримати все у потрібній кількісті.

Звірніть увагу, що для кожного виду є в наявності лише один ланчбокс - ви не можете купити два або більше ланчбоксів одного виду.

Формат вхідних даних

Перший рядок містить ціле число \(N\) (\(1 \le N \le 300\))

Другий рядок містить цілі числа \(X,Y\) (\(1 \le X,Y \le 300\))

Наступні  \(N\) рядків містять цілі числа \(A_i, B_i\) (\(1 \le A_i,B_i \le 300\))

Числа у рядках розділяються пропуском. `

Формат вихідних даних

У вихідний потік виведіть мінімальну кількість ланчбоксів або -1, якщо вибрати необхідну кількість ланчбоксів неможливо.

Приклад вхідних даних

3
5 6
2 1
3 4
2 3

Приклад вихідних даних

2

Приклад вхідних даних

3
8 8
3 4
2 3
2 1

Приклад вихідних даних

-1

Коментарі

Ще немає коментарів.