В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
casha23
casha23
30.01.2020 07:46 •  Информатика

Ограничение времени 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

Показать ответ
Ответ:
Shkolnik1287
Shkolnik1287
16.12.2021 10:50

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))

Объяснение:

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

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота