Присоединиться

Информатика·Программирование·11 класс

Для участников велогонки на каждом километре кольцевой трассы с

Условие

Для участников велогонки на каждом километре кольцевой трассы с двусторонним движением установлены пункты питания. Длина кольцевой трассы равна N километров. Нулевой и N-й километры трассы находятся в одной точке. Известно количество комплектов питания в каждом из пунктов на трассе. В каждый пункт комплекты питания доставляет отдельный электрокар. Стоимость доставки питания вычисляется как произведение количества комплектов питания на расстояние от мобильного цеха их подготовки до пункта питания спортсменов на трассе. Мобильный цех подготовки комплектов расположен в одном из пунктов питания на трассе таким образом, что общая стоимость доставки из цеха во все пункты минимальна. Определите минимальную суммарную стоимость доставки питания для спортсменов из цеха его подготовки в пункты питания на трассе.Входные данные.27_A.txt27_B.txtДано два входных файла (файл A и файл B), каждый из которых в первой строке содержит число N (1 ≤ N ≤ 10 000 000) — количество пунктов питания на кольцевой трассе. В каждой из следующих N строк находится число — количество комплектов питания на пункте (все числа натуральные, количество комплектов питания на каждом пункте не превышает 1000). Числа указаны в порядке расположения пунктов питания спортсменов на трассе, начиная с первого километра.Типовой пример организации данных во входном файле:6820513719При таких исходных данных, если контейнеры установлены на каждом километре автодороги, необходимо открыть центр переработки в пункте 6. В этом случае сумма транспортных затрат составит: 1 · 7 + 0 · 19 + 1 · 8 + 2 · 20 + 3 · 5 + 2 · 13.Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов. Предупреждение: для обработки файла B не следует использовать переборный алгоритм, вычисляющий сумму для всех возможных вариантов, поскольку написанная по такому алгоритму программа будет выполняться слишком долго. Ответ:

Ответ

14153018192010182272

Решение по шагам

  1. Как рассуждать

    Решение. Сначала считаем количество чисел в файле, затем считаем все числа в массив elems. Далее для первого числа, считая его серединой, найдём сумму всех чисел справа от него (rightSum) и сумму всех чисел слева от него (leftSum) (учитываем, что дорога кольцевая). Также при этом найдём общую стоимость доставки питания при условии открытия мобильного цеха в первом пункте (элементе). Решение на языке Python. f = open("1_27.txt")n = int(f.readline())elems = [int(i) for i in f]answers = [0 for i in range(n)]sum = 0rightSum = leftSum = 0for i in range(1, n // 2): sum = sum + elems[i] * i + elems[n - i] * i rightSum = rightSum + elems[i] leftSum = leftSum + elems[n - i]if n % 2 == 0: sum = sum + elems[n // 2] * (n // 2)else: sum = sum + elems[n // 2] * (n //

Осталось ещё 3 шага — откроются после входа:

  • Шаг 2
  • Шаг 3
  • Шаг 4
Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Программирование»