Таких скидок больше не будет!

осталось мест 57
Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Тренировки Пробники Статистика Учебник Об экзамене Учительская
  • Тренажёр заданий ЕГЭ
  • Тренажёр ЕГЭ по Информатике
  • Список заданий №0
  • Задание №0
  • Задание №56860 ЕГЭ Информатике

    Условие задания #56860

    №0 по КИМ

    Геодезист измеряет высоту над уровнем моря (в миллиметрах) относительно уровня начала дороги, для каждой из N её метровых отметок. Нумерация отметок начинается с единицы.

    Проектировщикам необходимо выбрать участок дороги длиной не менее К метров, на котором значение суммы всех высот, выраженное в миллиметрах, максимально. Это значение называется оценкой участка дороги. Начало и конец искомого участка совпадают с метровыми отметками на дороге. Началом участка считается метровая отметка дороги с меньшим номером.

    Определите две метровые отметки дороги так, чтобы расстояние между ними было не менее К метров, а оценка соответствующего участка дороги  — максимально возможной. Укажите в ответе найденное числовое значение максимальной оценки, выраженное в миллиметрах.

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

    Даны два входных файла (файл А и файл В), каждый из которых в первой строке входных данных задаётся протяженность дороги N (1 ≤ N ≤ 10 000), а во второй — натуральное число К — минимально допустимое расстояние (в метрах) между двумя отметками дороги (N > К).

    В каждой из следующих N строк находится одно целое число, не превышающее по модулю 10 000 000: высота относительно уровня начального участка дороги (в миллиметрах) на соответствующей метровой отметке дороги.

    В ответе укажите два числа: сначала значение искомой величины для файла А, затем  — для файла В.

    27A_59824.txt

    27B_59824.txt

    Ответ:

    2458862  11367571

    Решение

    f = open('1.txt')
    N = int(f.readline())
    K = int(f.readline())
    d = [int(x) for x in f]
    maxi = -10**10
    ras = 10**10
    s = [0]*N
    for 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)

    Понятно ли решение?

    Решения от учеников

    0

    Похожие задания

    15
    Задание №71953Задание №71952Задание №81Задание №20415Задание №71951Задание №104Задание №20414Задание №20416Задание №31793Задание №933Задание №20408Задание №56860Задание №38017Задание №56780Задание №71950
    Бесплатно

    Решай задачи ЕГЭ в приложении

    Скачивай наш Тренажер ЕГЭ на iPhone или Android и тренируйся в любое время и в любом месте!

    Саша — ассистент в телеграмме