Максимизируйте число из заданных целых чисел, используя следующие операции

Опубликовано: 27 Февраля, 2023

Даны положительные целые числа N , A , B и C такие, что 1 ≤ C < N. Задача состоит в том, чтобы максимизировать значение B, выполнив следующие операции:

  • A можно увеличить на 1, уменьшив 1 от N .
  • Увеличьте значение B на B + A , вычитая C из N,

Вышеуказанные операции можно выполнять до N ≤ 0.

Примеры:

Input: N = 6, A = 0, B = 0, C = 1
Output: 9
Explanation: First increase the value of A three times. 
After this A become 3 and N = N – 3 that is N become 3.
Then increase the value of B by A that is B = B + A now B = 3,  
and decrease the value of N by C that is N = N – C which is 2.
Repeat the previous step two times and finally B will become 9 
and then N will become 0.
This is the maximum value that can be obtained by B

Input: N = 10, A = 0, B = 0, C = 2
Output: 12
Explanation:  First increase the value of A four times. 
After this A become 4 and N=N – 4 that is N become 6.
Then increase the value of B by A that is B = B + A now B = 4,  
and decrease the value of N by C that is N = N – C which is 4.
Repeat the previous step two times and finally B will become 12 
and N will become 0.
This is the maximum value that can be obtained by B.

Подход: Чтобы решить проблему, следуйте следующей идее:

The best time to check for each possible value of A, what can be the value of B. The maximum value among these values is the required answer.

It is always benefitial to keep the values of A in a manner such till N%C = 0, because that will result in no wastage of operations.

Следуйте инструкциям, чтобы решить проблему:

  • Прежде всего, A нужно увеличить до 1, потому что если выполняется B = B + A, то B всегда останется равным 0.
  • Запустите цикл, пока N > 0.
    • Если (N%C = 0), то проверьте окончательное значение B после выполнения всех оставшихся операций B = B + A.
      • Обновите максимальное значение B.
      • В противном случае верните B, потому что дальше вы не сможете найти максимальное значение.
    • В противном случае просто увеличьте значение A = A + 1 и уменьшите значение N = N – 1.
  • Возвращает максимальное значение B.

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

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