Сеня выбирает подарки на Новый год. Он знает, что Дед Мороз купит ему два подарка: один от мамы и один от папы
Сеня выбирает подарки на Новый год. Он знает, что Дед Мороз купит ему два подарка: один от мамы и один от папы. В магазине, где Дед Мороз будет покупать подарки, есть N подарков. У каждого подарка известна его цена: цена i-го подарка равна Ai в рублях. Сеня знает, что Дед Мороз может потратить на подарки не более X рублей. Он хочет выбрать два различных подарка с наибольшей суммарной ценой, не превышающей X. Помогите Сене выбрать подарки. Введите первую строку данных.
Пояснение:
В данной задаче Сене нужно выбрать два подарка из N имеющихся в магазине, так чтобы их суммарная цена не превышала X рублей. Мы должны помочь ему сделать правильный выбор.
Дополнительный материал:
Входные данные:
6 10
1 2 3 4 5 6
Выходные данные:
4 6
Объяснение:
Из имеющихся подарков можно выбрать два, суммарная цена которых не превышает 10 рублей и является наибольшей. В данном случае это подарки с ценами 4 и 6.
Совет:
Для решения этой задачи можно использовать подход с двумя указателями. Отсортируйте список подарков по возрастанию цены. Затем установите два указателя: один в начале списка, другой в конце. Суммируйте цены, указанные указателями. Если сумма больше X, уменьшите сумму за счет сдвига указателя с более высокой ценой на одну позицию влево. Если сумма меньше X, сдвиньте указатель с более низкой ценой на одну позицию вправо. Повторяйте этот процесс, пока указатели не пересекутся. В результате вы получите два подарка с наибольшей суммой, не превышающей X.
Упражнение:
Даны следующие данные:
Входные данные:
8 15
2 3 5 8 10 12 15 20
Какие два подарка Сене следует выбрать, чтобы суммарная цена не превышала 15 рублей и была наибольшей?
Все ответы даются под вымышленными псевдонимами! Здесь вы встретите мудрых наставников, скрывающихся за загадочными никами, чтобы фокус был на знаниях, а не на лицах. Давайте вместе раскроем тайны обучения и поищем ответы на ваши школьные загадки.
В данной задаче Сене нужно выбрать два подарка из N имеющихся в магазине, так чтобы их суммарная цена не превышала X рублей. Мы должны помочь ему сделать правильный выбор.
Дополнительный материал:
Совет:
Для решения этой задачи можно использовать подход с двумя указателями. Отсортируйте список подарков по возрастанию цены. Затем установите два указателя: один в начале списка, другой в конце. Суммируйте цены, указанные указателями. Если сумма больше X, уменьшите сумму за счет сдвига указателя с более высокой ценой на одну позицию влево. Если сумма меньше X, сдвиньте указатель с более низкой ценой на одну позицию вправо. Повторяйте этот процесс, пока указатели не пересекутся. В результате вы получите два подарка с наибольшей суммой, не превышающей X.
Упражнение:
Даны следующие данные:
Какие два подарка Сене следует выбрать, чтобы суммарная цена не превышала 15 рублей и была наибольшей?