Ограничение по времени работы программы: 1 секунда



Дата04.03.2022
өлшемі13,43 Kb.
#134363

Ограничение по времени работы программы: 1 секунда
На одном из московских вокзалов билеты продают N касс. Каждая касса работает без перерыва определенный промежуток времени по фиксированному расписанию (одному и тому же каждый день). Требуется определить, на протяжении какого времени в течение суток работают все кассы одновременно.
ВХОДНЫЕ ДАННЫЕ
Сначала вводится одно целое число N (0В каждой из следующих N строк через пробел расположены 6 целых чисел, первые три из которых обозначают время открытия кассы в часах, минутах и секундах (часы — целое число от 0 до 23, минуты и секунды — целые числа от 0 до 59), оставшиеся три — время закрытия в том же формате. Числа разделены пробелами.
Время открытия означает, что в соответствующую ему секунду касса уже работает, а время закрытия — что в соответствующую секунду касса уже не работает. Например, касса, открытая с 10 ч 30 мин 30 с до 10 ч 35 мин 30 с, ежесуточно работает 300 секунд.
Если время открытия совпадает с временем закрытия, то касса работает круглосуточно. Если первое время больше второго, то касса начинает работу до полуночи, а заканчивает~-— на следующий день.
ВЫХОДНЫЕ ДАННЫЕ
Требуется вывести одно число — суммарное время за сутки (в секундах), на протяжении которого работают все N касс.
ПРИМЕР
Ввод
3
1 0 0 23 0 0
12 0 0 12 0 0
22 0 0 2 0 0
2
9 30 0 14 0 0
14 15 0 21 0 0
2
14 00 00 18 00 00
10 00 00 14 00 01
Вывод
7200
0
1
n = int(input())
Events = []
count = 0
for i in range(n):
h1,m1,s1,h2,m2,s2 = map(int,input().split())
t1 = 3600 * h1 + 60 * m1 + s1
t2 = 3600 * h2 + 60 * m2 + s2
Events.append((t1,1))
Events.append((t2,-1))
if t1 > t2:
count +=1
ans = 0
start = 0
for x, type in sorted(Events):
count += type
if count == n:
start = x
if count == n -1 and type == -1:
ans += x - start
if count == n:
ans += 24 * 3600 - start
print(ans)

Достарыңызбен бөлісу:




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет