#python
Вопрос:
Я смотрю на решение CCC J4.
Это проблема:
Фиона каждый день ездит на работу. Если нет движения в час пик, ее время в пути составляет 2 часа. Однако здесь часто бывает движение в час пик. В частности, движение в час пик происходит с 07:00 (7 утра) до 10:00 (10 утра) утром и с 15:00 (3 часа дня) до 19:00 (7 вечера) днем. Во время движения в час пик ее скорость снижается вдвое. Она уходит либо в назначенный час (в XX:00), либо через 20 минут после назначенного часа (в XX:20), либо через 40 минут после назначенного часа (в XX:40). Учитывая время отъезда Фионы, в какое время она приходит на работу?
Входная спецификация
Ввод будет состоять из одной строки, которая содержит выражение вида HH:ММ, где HH-один из 24 часов начала (00, 01, . . ., 23) и ММ-это одно из трех возможных минут отправления (00, 20, 40).
Выходная спецификация
Выведите время прибытия Фионы в виде ЧЧ:мм.
Решение, которое я нашел, напиши так:
slow1s = 7*60
slow1e = 10*60
slow2s = 15*60
slow2e = 19*60
sinput = input().split(":")
startt = int(sinput[0])*60 int(sinput[1])
D = 240
while D > 0:
if startt > slow1s and startt < slow1e:
D -= 1
elif startt > slow2s and startt < slow2e:
D -= 1
else:
D -= 2
startt = 1
if startt == 9:
startt = 1
s = ""
h = startt//60$
m = startt`
if h < 10:
s = "0" str(h) ":"
else:
s = str(h) ":"
if m < 10:
s = "0" str(m)
else:
s = str(m)
print(s)
Однако теперь я знаю, почему он/она написал этот код.
if startt == 9:
startt = 1
Я чувствую, что это бесполезно, но это работает, если время отправления 14:20, так как, если этот код удален, вывод будет 17:39 вместо 17: 40.
Комментарии:
1. Фактическая ошибка в (не очень хорошем) решении находится на
if startt > slow1s and startt < slow1e:
. Первый оператор строгого неравенства должен также допускать равенство. То же самоеelif
и ниже. «Бесполезный» код исправляет эту ошибку.