Геодезист измеряет высоту над уровнем моря (в миллиметрах) относительно
Условие
Геодезист измеряет высоту над уровнем моря (в миллиметрах) относительно уровня начала дороги, для каждой из N её метровых отметок. Нумерация отметок начинается с единицы.
Проектировщикам необходимо выбрать участок дороги длиной не менее К метров, на котором значение суммы всех высот, выраженное в миллиметрах, максимально. Это значение называется оценкой участка дороги. Начало и конец искомого участка совпадают с метровыми отметками на дороге. Началом участка считается метровая отметка дороги с меньшим номером.
Определите две метровые отметки дороги так, чтобы расстояние между ними было не менее К метров, а оценка соответствующего участка дороги — максимально возможной. Укажите в ответе найденное числовое значение максимальной оценки, выраженное в миллиметрах.
Входные данные.
Файл АФайл ВДаны два входных файла (файл А и файл В), каждый из которых в первой строке входных данных задаётся протяженность дороги N (1 ≤ N ≤ 10 000), а во второй — натуральное число К — минимально допустимое расстояние (в метрах) между двумя отметками дороги (N > К).В каждой из следующих N строк находится одно целое число, не превышающее по модулю 10 000 000: высота относительно уровня начального участка дороги (в миллиметрах) на соответствующей метровой отметке дороги.В ответе укажите два числа: сначала значение искомой величины для файла А, затем — для файла В. Ответ:
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Приведём решение на языке Python. f = open('27.txt')N = int(f.readline())K = int(f.readline())d = [int(x) for x in f]maxi = -1010ras = 1010s = [0]*Nfor i in range(N): s[i] = s[i-1] + d[i]for j in range(K,N): ras = min(ras, s[j-K]) maxi = max(maxi, s[j], s[j] - ras)print(maxi) В результате работы данного алгоритма при вводе данных из файла A ответ — 2458862, из файла B —
Осталось ещё 1 шаг
Примечание. Путь к файлу необходимо указать…
Бесплатно · займёт минуту