Олимпиадный тренинг

Задача . C. Сжатие песен


Задача

Темы: сортировки *1100

У Ивана на телефоне есть \(n\) песен. Размер \(i\)-й песни \(a_i\) байт. У Ивана также есть флеш-карта, которая может хранить не более \(m\) байт информации. Изначально его флеш-карта пустая.

Иван хочет записать все \(n\) песен на свою флеш-карту. Он может сжимать некоторые из них. Если он сжимает \(i\)-ю песню, размер \(i\)-й песни уменьшается с \(a_i\) до \(b_i\) байт (\(b_i < a_i\)).

Иван может сжать любое подмножество песен (возможно, пустое) и записать все песни на флеш-карту, если сумма их размеров не превышает \(m\). Он может сжимать любое подмножество песен (не обязательно подряд идущих).

Иван хочет найти минимальное количество песен, которое необходимо сжать, чтобы все песни поместились на флеш-карте (то есть сумма их размеров была меньше либо равна \(m\)).

Если невозможно записать все песни (даже если Иван сожмет все песни, которые у него есть), выведите «-1». Иначе выведите минимальное количество песен, которое Ивану необходимо сжать.

Входные данные

Первая строка входных данных содержит два целых числа \(n\) и \(m\) (\(1 \le n \le 10^5, 1 \le m \le 10^9\)) — количество песен на телефоне Ивана и вместительность флеш-карты Ивана.

Следующие \(n\) содержат по два целых числа каждая: \(i\)-я строка содержит два целых числа \(a_i\) и \(b_i\) (\(1 \le a_i, b_i \le 10^9\), \(a_i > b_i\)) — изначальный размер \(i\)-й песни и размер \(i\)-й песни после сжатия.

Выходные данные

Если невозможно сжать подмножество песен таким образом, что все песни поместятся на флеш-карту, выведите «-1». Иначе выведите минимальное количество песен, которое необходимо сжать.

Примечание

В первом тестовом примере Иван может сжать первую и третью песни, после этого сумма размеров будет равна \(8 + 7 + 1 + 5 = 21 \le 21\). Также Иван может сжать первую и вторую песни, тогда сумма размеров будет равна \(8 + 4 + 3 + 5 = 20 \le 21\). Заметьте, что сжатия какой-либо одной песни недостаточно, чтобы записать все песни на флеш-карту (например, после сжатия второй песни сумма размеров будет равна \(10 + 4 + 3 + 5 = 22 > 21\)).

Во втором тестовом примере даже если Иван сожмет все песни, сумма размеров будет равна \(8 + 4 + 1 + 4 = 17 > 16\).


Примеры
Входные данныеВыходные данные
1 4 21
10 8
7 4
3 1
5 4
2
2 4 16
10 8
7 4
3 1
5 4
-1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя