Поиск по этому блогу

пятница, 14 февраля 2020 г.

С27 задача 16 на Питоне

На вход программе подаются сведения о пассажирах, сдавших свой багаж в камеру хранения. В первой строке задано текущее время: через двоеточие два целых числа, соответствующие часам (от 00 до 21, ровно 2 символа) и минутам (от 00 до 59, ровно 2 символа). Во второй строке задается количество пассажиров N, которое не меньше 10, но не превосходит 1000. В каждой из последующих N строк находится информация о пассажирах в следующем формате:

<Фамилия> <Время освобождения ячейки>
где <Фамилия> – строка, состоящая не более, чем из 20 символов без пробелов, <Время освобождения ячейки> – через двоеточие два целых числа, соответствующие часам (от 00 до 21, ровно 2 символа) и минутам (от 00 до 59, ровно 2 символа). <Фамилия> и <Время освобождения ячейки> разделены ровно одним пробелом. Пример входных строк:

10:00
3
Иванов 12:00
Петров 10:12
Сидоров 12:12


Программа должна выводить список пассажиров, которые в ближайшие 2 часа должны освободить ячейки. Список должен быть отсортирован в хронологическом порядке освобождения ячеек. В данном случае программа должна вывести

Петров
Иванов


Решение
def timer(s):
     p = s.index(':')
     return int(s[:p])*60+int(s[p+1:])
s1=input()
ntime=timer(s1)
pas=[]
t=[]
n=int(input())
for i in range(n):
     s2=input()
     k=s2.index(' ')
     fam=s2[:k]
     ti=timer(s2[k+1:])
     if ti-ntime <= 120:
          if len(pas)==0:
               pas.append(fam)
               t.append(ti)
          else:
               f=0
               for j in range(len(pas)):
                    if ti<t[j]:
                         t.insert(j,ti)
                         pas.insert(j,fam)
                         f=1
               if f==0:
                    pas.append(fam)
                    t.append(ti)                    
for i in pas:
     print(i)

Комментариев нет:

Отправить комментарий