Для того чтоб компютеры поддерживали актуальное время, они могут обращаться к

Для того чтоб компютеры поддерживали актуальное время, они могут обращаться к серверам четкого медли SNTP. К раскаянью компьютер не может просто получить время у сервера,поэтому что информация по сети передается не моментально;пока сообщение с текущим временем дойдет до компютера,оно потеряет свою актуальность .
Протокол взаймодействия клиента смотрится
1)Клиент посылает запрос на сервер и запоминает вреия отправления A.
2)Сервер получает запрос в момент медли B и посылает клиенту сообщение содержащее время B
3)Клиент получает ответ на собственный запрос в момент вреиени C и запоминает его. Сейчас клиент, из догадки,что сетевые задержки при передаче известий от клиента серверу и от сервера клиенту схожи может определить и установить для себя точное время используя знаменитые значения A,B,C. Ваи предстоит воплотить алогритм с точностью до скенунды определяющий четкое время для установки на клиенте по знаменитым A,B и C. При необходимости округлите резултат до целого числа секунд по правилам арифметики. Вероятно что пока клиент ждал ответа по клиентскому медли успели наступить новые день но знаменито,что меж отправкой клиентом запроса и получением ответа от сервера прошло наименее 24 часов.
Прграииа получает на вход три времменные ловки A,B,C по одной в каждой строке.Все временные метки представлены в формате hh:mm:ss, где hh-это часы, mm-это минутки, ss-cеукнды.Часы,минутки и секунды записываются ровно двуия цифрами каждоею
Программка обязана вывести одну врмменную метку в формате,описаннои во входных данных-выичсленное четкое время для установки на клиенте. В выводе не обязано быть пробелов,пустопорожних строк в начале вывода.

Задать свой вопрос
1 ответ
Если на прохождение запроса необходимо время t секунд. то с момента отправки запроса клиентом до получения ответа сервера пройдёт время 2t. Зная, что запрос был выслан в момент медли A и получен ответ в момент времени C, можно вычислить t. Беря во внимание, что t секунд вспять было время B, то на данный момент время B + t.

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 lt; A:
    C += timestamp_to_time("24:00:00")
 
t = (C - A + 1) // 2
current_time = B + t
print(time_to_timestamp(current_time))
 
 
Пример ввода:
23:59:59
01:00:51
00:00:20
 
Пример вывода:
01:01:02
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт