Решение ✅ 4848. Python. (№ 4848) На вход программе подается последовательность целых чисел и натуральное число K. Особым числом называется отрицательное число, заканчивающееся на 3. Рассматриваются все непрерывные подпоследовательности исходной последовательности, содержащие ровно K особых чисел. Программа должна вывести одно число – максимальную сумму элементов такой подпоследовательности. Гарантируется, что в последовательности существует хотя бы K особых чисел.
Предметы
4848. Python. (№ 4848) На вход программе подается последовательность целых чисел и натуральное число K. Особым числом называется отрицательное число, заканчивающееся на 3. Рассматриваются все непрерывные подпоследовательности исходной последовательности, содержащие ровно K особых чисел. Программа должна вывести одно число – максимальную сумму элементов такой подпоследовательности. Гарантируется, что в последовательности существует хотя бы K особых чисел.
0 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 50 оценок, среднее: 0,00 из 5
Загрузка...

(№ 4848) На вход программе подается последовательность целых чисел и натуральное число K. Особым числом называется отрицательное число, заканчивающееся на 3. Рассматриваются все непрерывные подпоследовательности исходной последовательности, содержащие ровно K особых чисел. Программа должна вывести одно число – максимальную сумму элементов такой подпоследовательности. Гарантируется, что в последовательности существует хотя бы K особых чисел.
Входные данные. Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество чисел N (100 ≤ N ≤ 5000000) и натуральное число K. Каждая из следующих N строк файлов содержит одно целое число, не превышающее по модулю 10000. Гарантируется, что сумма любой подпоследовательности исходной последовательности не превышает 109.
Пример входного файла:

14 1
-1
-1
2
-3
3
-13
1
-1
6
-23
8
23
8
1

В этом наборе три особых числа: –3, –13 и –23. Можно выбрать подпоследовательность (6, –23, 8, 23, 8, 1), которая имеет сумму 23 и содержит одно особое число. Ответ для приведенного примера: 23.
В ответе укажите два числа: сначала искомое значение для файла А, затем для файла B.

k=11
a=[int(x) for x in open('27_B_4848.txt')]
d=[0]*k
ma=-100000000
n=0
s=0
mi=1000000000000
for i in range(len(a)):
    s=s+a[i]
    if a[i]<0 and abs(a[i])%10==3:
        n=n+1
        d[ost]=mi
        mi=10000000000000
    ost=n%k
    if n==k:
        ma=max(ma,s)
    if d[ost]==0:
        d[ost]=s
    else:
        ma=max(ma,s-d[ost])
        mi=min(s,mi)
print(ma)

Для корректной работы файла В необходимо убрать первую строчку из файла. Для файла А: меняем значение k=3 и также убираем первую строчку (ибо не хочется заморачиваться со считыванием) 🙂

Ответ:

20139 38739

Формат файла

Источник

сайт Полякова

Создание сайтов - Лидер Поиска

Refund Reason