Сеня выбирает подарки на Новый год. Он знает, что Дед Мороз купит ему два подарка: один от мамы и один от папы
Сеня выбирает подарки на Новый год. Он знает, что Дед Мороз купит ему два подарка: один от мамы и один от папы. В магазине, где Дед Мороз будет покупать подарки, есть N подарков. У каждого подарка известна его цена: цена i-го подарка равна Ai в рублях. Сеня знает, что Дед Мороз может потратить на подарки не более X рублей. Он хочет выбрать два различных подарка с наибольшей суммарной ценой, не превышающей X. Помогите Сене выбрать подарки. Введите первую строку данных.
18.11.2023 20:08
В данной задаче Сене нужно выбрать два подарка из N имеющихся в магазине, так чтобы их суммарная цена не превышала X рублей. Мы должны помочь ему сделать правильный выбор.
Дополнительный материал:
Совет:
Для решения этой задачи можно использовать подход с двумя указателями. Отсортируйте список подарков по возрастанию цены. Затем установите два указателя: один в начале списка, другой в конце. Суммируйте цены, указанные указателями. Если сумма больше X, уменьшите сумму за счет сдвига указателя с более высокой ценой на одну позицию влево. Если сумма меньше X, сдвиньте указатель с более низкой ценой на одну позицию вправо. Повторяйте этот процесс, пока указатели не пересекутся. В результате вы получите два подарка с наибольшей суммой, не превышающей X.
Упражнение:
Даны следующие данные:
Какие два подарка Сене следует выбрать, чтобы суммарная цена не превышала 15 рублей и была наибольшей?