Условие

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

В представленном коде каждый бит исходного сообщения при передаче повторяется некоторое число раз подряд, и затем в конце сообщения дописываются нули так, чтобы сообщение было представлено байтовой строкой. Она передаётся через канал с помехой, инвертирующей случайные биты.

Ваша задача — декодировать полученный сигнал, восстановив исходное сообщение. Если однозначное декодирование невозможно, сигнал считается повреждённым. Гарантируется, что ложные инверсии блоков отсутствуют, а длина повтора определяется однозначно. Но исходные данные могут быть сформированы некорректно.

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

Последовательность байт произвольной длины. Первый байт – длина исходного сообщения в битах, далее идёт закодированное сообщение.

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

В случае успешного декодирования — одно целое число, представляющее собой десятичное значение восстановленного двоичного сообщения.

Если сигнал декодировать невозможно — строка `Invalid`.

Для решения этой задачи у вашей команды есть 20 попыток.

Видео-разбор

  

   

Последнее изменение: среда, 4 февраля 2026, 07:44