Задача 7: Удаление данных Случилась беда — шпиона Сергея раскрыли, и теперь ему нужно бежать! Но перед побегом он должен удалить все компрометирующие данные со своего компьютера.

На компьютере Сергея сохранены N файлов, пронумерованных числами от 1 до N. У каждого из файлов есть размер в байтах: a1, a2, ..., aN. Все данные на компьютере Сергея хорошо зашифрованы. Шпион определил, что для удаления файла с номером i понадобится минимум из ai−1 и ai+1 секунд (для удаления первого файла потребуется a2 секунд, а для удаления последнего — aN−1 секунд). Когда остается всего один файл, он удаляется мгновенно. После удаления файла с номером i остальные файлы перенумеровываются последовательно.

У Сергея осталось очень мало времени, а ему еще нужно собрать вещи, поэтому он просит у вас . Определите, какое минимальное время понадобится шпиону, чтобы удалить все файлы. Сергей может удалять файлы последовательно в любом порядке.

Входные данные

В первой строке выходных данных записано одно целое число N (1 ≤ N ≤ 105) — количество файлов на компьютере шпиона.

В каждой из следующих N строк записано по одному целому числу ai (1 ≤ ai ≤ 104) — размер файла с номером i на компьютере Сергея.

Выходные данные

В единственной строке выведите одно число — минимальное время, которое понадобится Сергею для удаления всех файлов.

Система оценки

Решения, правильно работающие только для случаев, когда N не превосходит 10, будут оцениваться в

Решения, правильно работающие только для случаев, когда N не превосходит 1000, будут оцениваться в

Примеры

Ввод
Вывод
Пояснение
5
1
2
3
1
100
4
У Сергея есть файлы с размерами 1, 2, 3, 1, 100. Один из вариантов решения приведен ниже:
1. Удалим последний файл. Это займет одну секунду.
2. Затем удалим файл размера 2 за одну секунду.
3. Далее удалим файл размера 3 за одну секунду.
4. Теперь удалим любой из оставшихся двух файлов за одну секунду.
5. Последний файл моментально удалится сам.
Итого, Сергею понадобится 1 + 1 + 1 + 1 = 4 секунды.
1
1
0
У Сергея изначально есть всего один файл, который сразу же удалится.

samruk1974 samruk1974    1   29.10.2021 12:16    26

Ответы
ilya482 ilya482  29.10.2021 12:20

n = int(input())

min = 10**5

for i in range(n):

   element = int(input())

   if element < min:

       min = element

print((n-1) * min)

Пошаговое объяснение:

Язык python 3, самое быстрое решение без массивов и долгих поисков. Берём и удаляем все элементы всегда возле самого минимального числа.

ПОКАЗАТЬ ОТВЕТЫ
Бенди3007 Бенди3007  29.10.2021 12:20

n = int(input())

ints = []

for i in range(n):

ints.append(int(input()))

min_val = min(ints)

print(min_val * (n - 1))

Берем минимальное число из списка и удаляем все числа рядом с ним. Это будет минимальное время

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Математика