Задача к ЕГЭ по информатике на тему «практика программирования» №3

Подается массив из 12  натуральных чисел, а также два натуральных числа — x  и y  . Известно, что не в каждой    i  клетке присутствует число, дающее остаток i  от деления на 12  , а там записано мусорное число: − 10000000  . Прибавьте к массиву число x  , а затем число y  и определите, какие максимальные суммы с остатком i  могут получиться. (постройте итоговый массив, чтобы в i  -ой клетке лежало максимально по возможности число (выбор между двумя массивами когда прибавляли   или   )) В качестве ответа выведите массив на экран (скобки и пробелы сохраняйте).

Напишите ответ для массива [72,73,− 10000000,75,76,− 10000000,78,79,80,81,82,83]  и для x = 12  и y = 10  .

ans_12 = [72, 73, -10000000, 75, 76, -10000000, 78, 79, 80, 81, 82, 83]
 
x = int(input())
 
y = int(input())
 

 
ans_new_12 = [-10000000] * 12
 
for j in range(12):
 
    ost = (ans_12[j] + x) % 12
 
    if ans_12[j] + x > ans_new_12[ost]:
 
        ans_new_12[ost] = ans_12[j] + x
 
for j in range(12):
 
    ost = (ans_12[j] + y) % 12
 
    if ans_12[j] + y > ans_new_12[ost]:
 
        ans_new_12[ost] = ans_12[j] + y
 
ans_12 = ans_new_12
 

 
print(ans_12)

Ответ: [84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95]
Оцените статью
Я решу все!