Ограничение времени 1 секунда Ограничение памяти 64Mb

Ввод стандартный ввод или input.txt

Вывод стандартный вывод или output.txt

Чтобы компьютер мог установить у себя точное время, он может использовать специальные сервера, рассылающие значения точного времени. Но при этом просто запросить значение времени у сервера недостаточно, так как данные передаются через сеть с определенной задержкой, и пока значение текущего времени дойдет от сервера до компьютера, оно потеряет свою актуальность.

Поэтому разработан специальный протокол, определяющий взаимодействие клиента (запрашивающего значение времени компьютера) и севера (рассылающего значение времени компьютера), содержащий следующие шаги:

Клиентский компьютер отсылает серверу свой запрос и сохраняет (по времени клиента) момент отправления А этого запроса;

В момент получения запроса клиента севером его точные часы показывают В. Это значение сервер и отправляет клиенту;

ответ сервера приходит клиенту в момент C по клиентскому времени, это значение клиентом также сохраняется. Теперь он в состоянии установить значение точного времени, располагая известными значениями А, В и С.

Предполагается, что значения задержки при передаче данных в направлениях клиент-сервер и сервер-клиент совпадают.

Требуется реализовать алгоритм, который с точностью до одной секунды находит точное значение времени для установки на клиентском компьютере по известным значениям А, В и С. При получении дробного результата необходимо округлить его до целого числа секунд по обычным правилам арифметики (если дробная часть числа меньше 0.5, то в меньшую сторону, иначе – в большую)

Нужно принять во внимание, что пока клиент ожидает ответа, по его клиентскому времени могут начаться новые сутки. При этом известно, что между моментом отправки запроса и получением ответа от сервера проходит менее 24 часов.

Формат ввода

Программа получает на вводе три момента времени, каждый записан в отдельной строке. Моменты времени представлены в формате «hh:mm:ss» (hh -– часы, mm – минуты, ss – секунды). Часы, минуты и секунды записываются ровно двумя цифрами с добавлением при необходимости ведущих нулей.

Формат вывода

Необходимо вывести в том же формате, что и на вводе единственный момент времени –- точное время, которое нужно установить на клиенте.

Пример

Ввод Вывод

15:01:00

18:09:45

15:01:40

18:10:05

Примечания

Клиент отправил запрос в 15:01:00 по своим часам, сервер получил запрос в 18:09:45 по своим часам. Клиент получил ответ в 15:01:40, в этот момент его точное время будет 18:10:05

Lichnosti Lichnosti    3   16.12.2021 10:41    5

Ответы

def timestamp_to_time(timestamp):

   seconds = 0

   for token in timestamp.split(":"):

       seconds = seconds * 60 + int(token)

   return seconds

 

def time_to_timestamp(time):

   seconds = time % 60

   time //= 60

   minutes = time % 60  

   time //= 60

   hours = time % 24

   return "{:02d}:{:02d}:{:02d}".format(hours, minutes, seconds)

 

A = timestamp_to_time(input())

B = timestamp_to_time(input())

C = timestamp_to_time(input())

 

if C < A:

   C += timestamp_to_time("24:00:00")

 

t = (C - A + 1) // 2

current_time = B + t

print(time_to_timestamp(current_time))

Объяснение:

это я нашла у другого человека

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика