Олимпиадный тренинг

Задача . A. Лента Тьюринга


Задача

Темы: реализация *1300

INTERCAL — самый старый эзотерический язык программирования. Одна из его многих странностей — метод символьного вывода, известный как лента Тьюринга. Он преобразует массив беззнаковых 8-битных целых чисел в последовательность символов по следующему алгоритму.

Числа массива обрабатываются по одному, начиная с первого. Обработка i-ого числа состоит из трех шагов:

1. 8-битная двоичная запись ASCII-кода предыдущего напечатанного символа отображается зеркально. При обработке первого числа массива результат этого шага считается равным нулю.

2. Из результата предыдущего шага вычитается i-ое число массива по модулю 256.

3. Двоичная запись результата предыдущего шага отображается зеркально, чтобы получить ASCII-код очередного (i-ого) символа для печати.

Дан текст, напечатанный этим способом. Восстановите оригинальный массив.

Входные данные

В единственной строке входных данных задана строка text — сообщение, напечатанное описанным способом. Строка text содержит от 1 до 100 символов, включительно. ASCII-код каждого символа будет от 32 (пробел) до 126 (тильда), включительно.

Выходные данные

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

Примечание

Рассмотрим начало примера. Первый символ — «H», ASCII-код 72 = 010010002. Его зеркальное отображение 000100102 = 18, и это число должно стать результатом второго шага обработки. Результатом первого шага обработки считается 0, поэтому первое число массива должно быть равно (0 - 18) mod 256 = 238, где a mod b — остаток от деления a на b.


Примеры
Входные данныеВыходные данные
1 6 9
1 5
5 4
1 2
2 3
3 4
4 1
2 6
6 4
4 2
4
1 2 3 4
1 2
2 7 7
1 2
2 3
3 4
4 5
5 6
6 7
7 1
7
1 2 3 4 5 6 7
0 0
3 8 13
8 7
8 6
7 5
7 4
6 5
6 4
5 3
5 2
4 3
4 2
3 1
2 1
1 8
5
8 7 5 2 1
0 3

time 2000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя