Задача C. Код Хэмминга

Автор:Пак С.С.   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:16 Мб
Выходной файл:output.txt  

Условие

Необходимо реализовать код Хэмминга с размером информационного блока в M бит.

Входной файл содержит M, текст, который нужно закодировать и последовательность бит, которая была закодирована данным кодом, и которую необходимо декодировать. Текст может содержать только символы ASCII 32122. Каждый символ кодируется 1 байтом. В случае, если в последнем информационном блоке остались лишние биты, они берутся за 0.

В закодированной последовательности не может быть более одной ошибки на каждый M+K блок бит. Размер контрольного блока K необходимо определить автоматически с наименьшей возможной избыточностью. Длина текста не более 10000 символов, длина закодированной последовательности не более 100000 символов.

Формат входного файла

Входной файл содержит в первой строке натуральное число M, во второй строке текст, который необходимо закодировать, в третьей - последовательность бит, которая была закодирована, и которую нужно декодировать.

Формат выходного файла

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

Ограничения

1 ≤ M ≤ 1000

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
2
Star
10011100111001101111100111110000000100111001101111000001110010011011110000001111
10011100110000001111100110111110011000001001111100000001001110011011110000011100
Wars
2
7
Hello !
1100101001110100111001000010101010010000011000000110011010111101010010011101000111000101
0001100110001000111001000010101010010000011011111000011100111111001110000000001011001001
Welcome

0.035s 0.007s 15