Понятно. Задача говорит: можно увеличивать элементы на 1 за операцию; чтобы привести все элементы к одному значению, выбираем минимально возможную цель и считаем количество необходимых прибавок.
Пояснение и решение
- Пусть максимальное значение в массиве будет M, а сумма элементов — S, и количество элементов — N.
- Любая целевая величина T, к которой приводим все элементы, удовлетворяет T ≥ M (поскольку можно только увеличивать).
- Общее число операций при выборе T равно sum(T - a_i) = N*T - S.
- Это выражение минимально при минимальном допустимом T, то есть T = M.
- Следовательно, минимальное количество операций равно N*M - S.
Алгоритм
- Найти M = max(a_i) и S = sum(a_i).
- Ответ = N*M - S.
Сложность
- Время: O(N) для одного прохода по массиву.
- Память: O(1) дополнительно.
Пример
- Массив: [1, 2, 3, 4], N = 4, M = 4, S = 10.
- Ответ: 4*4 - 10 = 6. Необходимо увеличить элементы на суммарно 6 раз.
Код-пример (Python) def min_operations(arr): if not arr: return 0 M = max(arr) S = sum(arr) N = len(arr) return N * M - S
чтение входа (N затем N чисел)
import sys data = list(map(int, sys.stdin.read().split())) if not data: print(0) else: N = data[0] a = data[1:1+N] print(min_operations(a))