Задача g6_1013: Коррекция кода.
По некоторому каналу связи передается сообщение, имеющее вид последовательности нулей и единиц. Из-за помех возможен ошибочный прием некоторых сигналов: нуль может быть воспринят как единица и наоборот. Для повышения вероятности правильного приема сигналов было решено передавать каждый сигнал трижды. Теперь передатчик вместо 1 всегда передает 111, а вместо 0 всегда 000.
Вам предлагается написать программу, которая будет восстанавливать исходное сообщение. При передаче могли произойти ошибки, поэтому вместо каждой тройки цифр программа должна вывести ту цифру, которая встречается в этой тройке по крайней мере два раза.
Формат входных данных
Во входном файле одна строка, в которой могут быть только символы "0" и "1". Длина строки - число, кратное трем, большее двух и меньшее 760.
Формат выходных данных
Вы должны вывести в одну строку раскодированное сообщение.
Пример ввода
110111010001
Правильный вывод для примера
1100
Решение g6_1013:
Это задача B с командного турнира по программированию "ИМ-Y2K" в СамГУ.
Она тоже простая. Достаточно организовать два цикла: один вида
repeat ... until EOF
и другой, вложенный в него
for x := 1 to 3 do ...
В начале первого цикла мы обнуляем значение некоторой переменной, а во втором цикле, если нам встретилась "1", увеличиваем значение этой переменной на 1. По окончании работы цикла for проверяем: если значение переменной равно 2 или 3, то выводим "1", если 0 или 1 то "0".
Просто!