Ограничение времени 2 секунды Ограничение памяти 256Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Василиса Премудрая очень премудрая. Она собирает лекарственные растения для приготовления чая и отваров. Для того, чтобы польза от этих растений была максимальной, необходимо соблюдать волшебные правила. Для каждого из N растений есть оптимальный день его сбора Ai . Для приготовления волшебного эликсира все растения нужно собрать в один день X. При этом волшебная сила растения в этот день меньше, чем в оптимальный, на Василисе Премудрой найти такой день X, чтобы суммарное уменьшение волшебной силы, равное
было минимальным.
Формат ввода
Первая строка входных данных содержит целое число: N (1 ≤ N ≤ 105) – количество растений, на следующей строке расположены N чисел Ai (1 ≤ Ai ≤ 106) для каждого растения. Все числа в строке отделены друг от друга одним пробелом.
Формат вывода
Выведите одно целое число – X.
Если таких значений несколько – выведите меньшее.
Давайте решим эту задачу шаг за шагом.
В этой задаче нам дано N растений и их оптимальные дни сбора Ai. Нам нужно найти такой день X, чтобы суммарное уменьшение волшебной силы растений было минимальным.
Первое, что нам нужно сделать, это найти максимальное значение дня сбора растения. Это нужно для того, чтобы мы могли выбрать наибольшее возможное значение X. Давайте это сделаем.
Шаг 1: Найти максимальное значение Ai
Для этого нам нужно прочитать все значения Ai и найти среди них максимальное значение. Давайте сделаем это следующим образом:
```
max_day = 0 # переменная для хранения максимального значения Ai
N = int(input()) # считываем количество растений
plants = input().split() # считываем значения Ai и разделяем их по пробелам
for i in range(N):
max_day = max(max_day, int(plants[i]))
print(max_day)
```
После выполнения этого кода, переменная `max_day` будет содержать максимальное значение Ai.
Шаг 2: Найти наименьшее возможное значение X
Теперь нам нужно найти наименьшее значение X, при котором суммарное уменьшение волшебной силы растений будет минимальным. Мы можем перебрать все возможные значения X от 1 до `max_day` и для каждого значения X вычислить суммарное уменьшение волшебной силы. Давайте сделаем это.
```
min_losses = float('inf') # переменная для хранения минимальной суммы уменьшения волшебной силы
best_day = 1 # переменная для хранения дня X с минимальной суммой уменьшения волшебной силы
for X in range(1, max_day+1):
losses = 0 # переменная для хранения суммы уменьшения волшебной силы для текущего значения X
for i in range(N):
losses += max(0, int(plants[i]) - X) # вычисляем сумму уменьшения волшебной силы для растения i
if losses < min_losses:
min_losses = losses
best_day = X
print(best_day)
```
После выполнения этого кода, переменная `best_day` будет содержать наименьшее возможное значение X.
Надеюсь, что я максимально подробно объяснил и пошагово продемонстрировал решение этой задачи. Если у тебя возникнут какие-либо вопросы, не стесняйся задавать их.
Удачи!