В банке 603 тыс. рублей. Разрешаются две операции: взять из банка 440 тыс. рублей или положить в него 196 тыс. рублей. Эти операции можно пр...
Условие:
Решение:
Для решения этой задачи можно использовать метод динамического программирования.
Создадим массив dp, где dp[i] будет представлять максимальную сумму денег, которую можно получить, имея i тыс. рублей в банке. Изначально все элементы массива dp будут равны нулю.
Затем мы будем итеративно обновлять значения массива dp. Для каждого значения i от 1 до 603, мы будем рассматривать две возможные операции: взять из банка 440 тыс. рублей или положить в него 196 тыс. рублей.
Если мы рассматриваем операцию взятия денег из банка, то мы должны проверить, что i - 440 >= 0, чтобы убедиться, что у нас достаточно денег в банке для выполнения этой операции. Если это условие выполняется, то мы обновляем значение dp[i] как максимум между dp[i] и dp[i - 440] + 440.
Аналогично, если мы рассматриваем операцию положить деньги в банк, то мы должны проверить, что i + 196 <= 603, чтобы убедиться, что мы не превысим максимальную сумму денег в банке. Если это условие выполняется, то мы обновляем значение dp[i] как максимум между dp[i] и dp[i + 196] + 196.
После завершения всех итераций, максимальная сумма денег, которую можно извлечь из банка, будет равна dp[603].
Применяя этот алгоритм, мы получаем, что максимальная сумма денег, которую можно извлечь из банка, составляет 440 тыс. рублей. Чтобы достичь этой суммы, нужно многократно выполнять операцию взятия 440 тыс. рублей из банка.