Hello 2018 |
---|
Закончено |
Вы готовитесь к экзамену по теории расписаний. Экзамен продлится ровно T миллисекунд. На экзамене вас ждут n задач. Каждую задачу номер i вы сможете либо полностью решить, затратив на это ti миллисекунд, либо не решить вовсе, не потратив на нее ни миллисекунды. Времени на отдых после решения задачи вам не потребуется.
К несчастью, ваш преподаватель считает, что некоторые задачи слишком просты для вас, поэтому каждой задаче i сопоставил целое число ai, обозначающее, что задача i может принести балл за ее решение только в том случае, если вы решите не более ai задач всего (включая задачу i).
Формально, пусть за экзамен вы решите некоторое множество задач p1, p2, ..., pk. Ваш итоговый балл за экзамен s будет равен количеству таких j от 1 до k, что k ≤ apj.
Догадавшись, что настоящая первая задача экзамена уже перед вами, вы хотите заранее выбрать подмножество задач для решения на экзамене, которое принесет вам наибольший возможный итоговый балл. Не забудьте, что экзамен ограничен по времени, и вам должно хватить времени на решение всех выбранных задач. Если существуют разные множества задач, ведущие к наибольшему итоговому баллу, вас устроит любое из них.
Первая строка содержит два целых числа n и T (1 ≤ n ≤ 2·105; 1 ≤ T ≤ 109) — количество задач на экзамене и длительность экзамена в миллисекундах, соответственно.
Каждая из следующих n строк содержит пару целых чисел ai и ti (1 ≤ ai ≤ n; 1 ≤ ti ≤ 104). Задачи пронумерованы от 1 до n.
В первой строке выведите целое число s — наибольший возможный итоговый балл.
Во второй строке выведите целое число k (0 ≤ k ≤ n) — количество задач, которые вам следует решить.
В третьей строке выведите k различных целых чисел p1, p2, ..., pk (1 ≤ pi ≤ n) — номера задач, которые вам следует решить, в любом порядке.
Если наилучших множеств задач несколько, выведите любое из них.
5 300
3 100
4 150
4 80
2 90
2 300
2
3
3 1 4
2 100
1 787
2 788
0
0
2 100
2 42
2 58
2
2
1 2
В первом примере следует решить задачи с номерами 3, 1 и 4. В таком случае вы потратите 80 + 100 + 90 = 270 миллисекунд, уложившись в длительность экзамена, 300 миллисекунд (и даже оставив себе 30 миллисекунд на отдых). Задачи 3 и 1 принесут вам по одному баллу, а задача 4 — не принесет. В итоге вы наберете два балла.
Во втором примере катастрофически не хватает времени на решение даже одной задачи.
В третьем примере вы идеально успеваете решить обе задачи за 42 + 58 = 100 миллисекунд и с улыбкой сдать работу преподавателю.
Название |
---|