Задача к ЕГЭ по информатике на тему «Цепочки, выбор последовательности, префиксные суммы» №2

Последовательность натуральных чисел характеризуется числом X и Y, где X – максимальная сумма цепочки, кратная 17, а Y – максимальная сумма цепочки, кратная 6. Гарантируется, что обе суммы в последовательности есть. Если существует несколько подпоследовательностей с равной максимальной суммой, нужно выбрать последовательность, которая заканчивается раньше т.е. последний элемент имеет меньший индекс. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности. Найдите X, Y, сумму X и Y.

В качестве ответа укажите суммы ответов файла А и файла B.

    f = open(’fileA.txt’)
 
    n = int(f.readline())
 
    minsx = [10e16] * 17
 
    minsx[0] = 0
 
    minsy = [10e16] * 6
 
    minsy[0] = 0
 
    summ, maximx, maximy = 0, 0, 0
 
    for i in range(n):
 
        x = int(f.readline())
 
        summ += x
 
        ostx = summ % 17
 
        osty = summ % 6
 
        if summ — minsx[ostx] > maximx:
 
            maximx = summ — minsx[ostx]
 
        if summ < minsx[ostx]:
 
            minsx[ostx] = summ
 
        if summ — minsy[osty] > maximy:
 
            maximy = summ — minsy[osty]
 
        if summ < minsy[osty]:
 
            minsy[osty] = summ
 
print(maximx, maximy, maximx + maximy)

Ответ: 30013820946
Оцените статью
Я решу все!