В течение N мин. (N — натуральное число) прибор ежеминутно регистрирует
Условие
По каналу связи передаётся последовательность целых чисел — показания прибора. В течение N мин. (N — натуральное число) прибор ежеминутно регистрирует значение напряжения (в условных единицах) в электрической сети и передаёт его на сервер.Определите три таких переданных числа, чтобы между моментами передачи любых двух из них прошло не менее K мин., а сумма этих трёх чисел была максимально возможной. Запишите в ответе найденную сумму.Входные данные.Файл AФайл BДано два входных файла (файл A и файл B), каждый из которых в первой строке содержит число K — минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй — количество переданных показаний N. В каждой из следующих N строк находится одно целое число, по модулю не превышающее 10 000 000, которое обозначает значение напряжения в соответствующую минуту.В ответе укажите два числа: сначала значение искомой величины для файла А, затем — для файла B. Пример организации исходных данных во входном файле:26150-15020-200-3000При таких исходных данных искомая величина равна 170 — это сумма значений, зафиксированных на первой, третьей и шестой минутах измерений. Предупреждение: для обработки файла B не следует использовать переборный алгоритм, вычисляющий сумму для всех возможных вариантов, поскольку написанная по такому алгоритму программа будет выполняться слишком долго. Ответ:
Ответ
18953617210
Решение по шагам
Как рассуждать
Решение. Приведём решение на языке Python. f = open('27_B_2024.txt')k = int(f.readline())n = int(f.readline())a = [int(x) for x in f]st = 0fin = 0summa = 0for i in range(2 * k, n): st = max(st, a[i-2*k]) fin = max(fin, st + a[i-k]) summa = max(summa, fin + a[i])print(summa) Ответ: 189536 17210.
Осталось ещё 1 шаг — откроются после входа:
- Полный разбор с проверкой ответа
Бесплатно · займёт минуту