Задача к ЕГЭ по информатике на тему «Простейшие программы» №19

В доме у Виктории Ю. внезапно поломалась вся техника, из-за чего Виктория начала плакать. Когда фиксики об это узнали, они взяли помогаторы и примчались спасать Викторию. Виктория начнет радоваться, как только будет починена вся техника в ее доме. Пока фиксики работают, они тратят по одному проценту своего запаса сил в минуту. Когда запас сил становится равен 20%  , фиксики уходят на зарядку, пока не наберут 80%  (на это требуется 2  минуты), потом они продолжают работать. Фиксики стараются починить сначала те приборы, которые требуют меньше всего времени. После починки самого последнего прибора фиксики заряжаются, чтобы улететь к ДимДимычу.

Во входном файле вы получаете число n  — количество приборов в доме у Виктории, затем n  чисел — время починки каждого отдельного прибора. Определите какое количество времени в минутах понадобится фиксикам, чтобы Виктория заулыбалась, если начальный заряд фиксиков 70%

Решение №1

n = int(input())
counter = 0
ener = 70
a = []
for i in range(n):
    a.append(int(input()))
a.sort()
i = 0
while i != n:
    if (ener - a[i]) > 20:  # Без подзарядки
        counter += a[i]
        ener -= a[i]
        i += 1
    elif (ener - a[i]) == 20:  # Одна подзарядочка и идем дальше
        counter += a[i] + 2
        ener = 80
        i += 1
    else:  # Одна или несколько подзарядок в одном пункте
        counter += (ener - 20) + 2
        a[i] -= (ener - 20)
        ener = 80
print(counter + 2)  # В конце заряжается по условию

Решение №2

n = int(input())
a = []
for i in range(n):
    a.append(int(input()))
a.sort()
ener = 70
time = 0
i = 0
flag = True
while i != n:
    if a[i] - ener + 20 >= 0:
        if i == n - 1 and a[i] - ener + 20 == 0:
            flag = False
        time += min(ener - 20, a[i]) + 2
        a[i] = max(a[i] - ener + 20, 0)
        ener = 80
    else:
        time += a[i]
        ener -= a[i]
        a[i] = 0
    if a[i] == 0:
        i += 1
if flag:
    time += 2
print(time)

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