Минимизируйте произведение двух возможных оценок не более чем за M сокращений.

Опубликовано: 21 Сентября, 2022

Даны два целых числа R1, R2, обозначающие серии, забитые двумя игроками, и B1, B2, обозначающие шары, с которыми они столкнулись соответственно, задача состоит в том, чтобы найти минимальное значение R1 * R2 , которое может быть получено таким образом, чтобы R1 и R2 можно было уменьшить на M серий, удовлетворяющих условиям R1 ≥ B1 и R2 ≥ B2 .

Примеры:

Input: R1 = 21, B1 = 10, R2 = 13, B2 = 11, M = 3
Output: 220
Explanation: Minimum product that can be obtained is by decreasing R1 by 1 and R2 by 2, i.e. (21 – 1) x (13 – 2) = 220.

Input: R1 = 7, B1 = 6, R2 = 9, B1 = 9, M = 4
Output: 54

Подход: минимальный продукт можно получить, полностью сократив числа до их пределов. Уменьшите R1 до его предела B1 , а затем уменьшите R2 как можно меньше (не превышая M ). Точно так же уменьшите R2 не более чем до B2, а затем уменьшите R2 как можно меньше (не превышая M ). Минимальное произведение, полученное в двух случаях, является искомым ответом.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(1)
Вспомогательное пространство: O(1)