Задание №4569.
Создание собственной программы. ЕГЭ по информатике
Архив, необходимый для выполнения задания: ссылка для скачивания.По каналу связи передаётся последовательность целых чисел – показания прибора. В течение
N мин.
(N – натуральное число) прибор ежеминутно регистрирует значение напряжения (в условных единицах) в электрической сети и передаёт его на сервер.
Определите три таких переданных числа, чтобы между моментами передачи любых двух из них прошло
не менее K мин., а сумма этих трёх чисел была минимально возможной. Запишите в ответе найденную сумму.
Входные данные.Даны два входных файла (файл
A и файл
B), каждый из которых в первой строке содержит натуральное число
K – минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй – количество переданных показаний
N (1 ≤
N ≤ 10 000 000,
N >
K). В каждой из следующих
N строк находится одно натуральное число, не превышающее 10 000 000, которое обозначает значение напряжения в соответствующую минуту.
Запишите в ответе два числа: сначала значение искомой величины для файла
А, затем – для файла
B.Типовой пример организации данных во входном файле
2
6
15
14
20
23
21
10
При таких исходных данных искомая величина равна 45 – это сумма значений, зафиксированных на первой, третьей и шестой минутах измерений.Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.Предупреждение: для обработки файла
B не следует использовать переборный алгоритм, вычисляющий сумму для всех возможных вариантов, поскольку написанная по такому алгоритму программа будет выполняться слишком долго.
Пояснение:
Решим задание, написав программу на языке программирования Python.
with open('308_27_A.txt', encoding='utf8') as f: k = int(f.readline()) n = int(f.readline()) data = [int(x) for x in f] max1 = max2 = max3 = 0 for i in range(k * 2, n): max1 = max(max1, data[i - k * 2]) max2 = max(max2, data[i-k] + max1) max3 = max(max3, data[i] + max2) print(max3) |
Таким образом,
280646 — значение искомой величины для файла
А,
26997 — значение искомой величины для файла
B.
Показать ответ
280646 26997
Источник: ФИПИ. Открытый банк тестовых заданий
Сообщить об ошибке
Тест с похожими заданиями