Задача A. Разность двух чисел (Машина тьюринга)

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

Условие

Даны два числа целых числа a и b. Вычислить их разницу.

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

a и b записаны на ленте в унарной системе счисления и разделены нулевым символом. Указатель находится на разделяющем нулевом символе.

В алфавите должен быть символ "1".

Формат языка программирования

Первая строка имеет формат ALPHABET

где identifier-list это список идентификаторов, разделённых запятой, обозначающих элементы алфавита ленты. Идентификатор имеет формат [_a-z0-9]*

Алфавит также всегда содержит нулевой символ "Z"

Каждая следующая строка описавает переход из одного состояния в другое в формате ->

здесь  — имя состояния (задаётся, как и идентификатор),  — символ,  — направление смещения каретки (`<`, `.`, или `>`).

Программа начинает работу с состояния START.

Программа завершает работу, когда попадает в состояние END. Весь код регистронезависим.

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

Поместить указатель на начало числа, обозначающего ab. Число должно быть с обеих сторон отделено нулевым символом.

Ограничения

0 < a < b < 10000

Разрешается задать алфавит не более, чем из одного символа.

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

Входной файл (input.txt) Выходной файл (output.txt)
1
Z1111111Z111
        ^
Z1111Z
 ^

Задача B. Сумма двух чисел (Машина тьюринга)

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

Условие

Даны два числа целых числа a и b в двоичной системе счисления. Вычислить их сумму.

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

a и b записаны на ленте в бинарной системе счисления и разделены нулевым символом. Указатель находится на разделяющем нулевом символе. В алфавите должны быть символы "1" и "0".

Формат языка программирования

Первая строка имеет формат ALPHABET <identifier-list>

где identifier-list это список идентификаторов, разделённых запятой, обозначающих элементы алфавита ленты. Идентификатор имеет формат [_a-z0-9]*

Алфавит также всегда содержит нулевой символ "Z", который задаётся неявно.

Каждая следующая строка описавает переход из одного состояния в другое в формате <state> <symbol> -> <state> <symbol> <direction>

здесь <state> — имя состояния (задаётся, как и идентификатор), <symbol> — символ, <direction> — направление смещения каретки (`<`, `.`, или `>`).

Программа начинает работу с состояния START.

Программа завершает работу, когда попадает в состояние END.

Весь код регистронезависим. Строки, начинающиеся с символа `#`, пропускаются.

Расширенный синтаксис перехода

Поддерживается такое описание правила перехода:

<state> <lsymbol-list> -> <state> <rsymbol-list> <direction> где <lsymbol-list> и <lsymbol-list> это списки символов через запятую. Например:

state1 a,b,c -> state2 c,d,e .

буквально означает

state1 a -> state2 c .

state1 b -> state2 d .

state1 c -> state2 e .

В <lsymbol-list> также можно указать "*" вместо символа, что будет соответствовать любому символу. Например, при алфавите A, B, C, Z правило

statex a, b, * -> statey c, d, e

буквально означает

statex a -> statey c .

statex b -> statey d .

statex C -> statey e .

statex Z -> statey e .

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

Поместить указатель на начало числа, обозначающего ab. Число должно быть с обеих сторон отделено нулевым символом.

Ограничения

0lt;= blt;= alt; 109

Разрешается задать алфавит не более, чем из четырёх символов, не считая нулевого.

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

Входной файл (input.txt) Выходной файл (output.txt)
1

Z1001Z111Z
     ^
	

Z10000Z
 ^
	

Задача C. Четырёхбайтовое сложение (BF)

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

Условие

Даны два числа целых четырёхбайтовых числа a и b. Вычислить их сумму

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

Каждым запросом на ввод читается один байт числа в big-endian порядке, т.е. сначала старший байт. Сначала читается a, потом b.

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

Вывести младшие 4 байта суммы в big-endian порядке.

Ограничения

0 < a, b < 232

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

Входной файл (input.txt) Выходной файл (output.txt)
1

ff ff ff ff
00 00 00 01
	

00 00 00 00
	

0.032s 0.006s 11