Codeforces Beta Round 96 (Div. 1) |
---|
Закончено |
INTERCAL — самый старый эзотерический язык программирования. Одна из его многих странностей — метод символьного вывода, известный как лента Тьюринга. Он преобразует массив беззнаковых 8-битных целых чисел в последовательность символов по следующему алгоритму.
Числа массива обрабатываются по одному, начиная с первого. Обработка i-ого числа состоит из трех шагов:
1. 8-битная двоичная запись ASCII-кода предыдущего напечатанного символа отображается зеркально. При обработке первого числа массива результат этого шага считается равным нулю.
2. Из результата предыдущего шага вычитается i-ое число массива по модулю 256.
3. Двоичная запись результата предыдущего шага отображается зеркально, чтобы получить ASCII-код очередного (i-ого) символа для печати.
Дан текст, напечатанный этим способом. Восстановите оригинальный массив.
В единственной строке входных данных задана строка text — сообщение, напечатанное описанным способом. Строка text содержит от 1 до 100 символов, включительно. ASCII-код каждого символа будет от 32 (пробел) до 126 (тильда), включительно.
Выведите исходный массив, который использовался для печати text, по одному элементу на строку.
Hello, World!
238
108
112
0
64
194
48
26
244
168
24
16
162
Рассмотрим начало примера. Первый символ — «H», ASCII-код 72 = 010010002. Его зеркальное отображение 000100102 = 18, и это число должно стать результатом второго шага обработки. Результатом первого шага обработки считается 0, поэтому первое число массива должно быть равно (0 - 18) mod 256 = 238, где a mod b — остаток от деления a на b.
Название |
---|