Есть три сосуда объёмами 6 л (обозначим буквой a), 10 л (b) и), 10 л (b) и) и 15 л (c). с ними). с ними
возможно выполнять следующие операции:
1. наполнить какой-то сосуд водой из крана, пока он не заполнится целиком.
2. вылить всю воду из какого-то сосуда.
3. перелить воду из одного сосуда в другой, пока в первом сосуде не кончится вода
или второй сосуд не заполнится целиком.
при этих операций вам необходимо отмерить 1 л воды, при этом нужно
использовать как можно меньше воды (учитывается вся вода, которая была суммарно налита
из крана). составьте алгоритм переливаний, в результате исполнения которого в каком-то
из сосудов окажется 1 л воды, а объём использованной воды будет как можно меньше.
для записи алгоритма используются следующие команды.
> x наполнить сосуд x (вместо x должен быть один из символов a), 10 л (b) и, b) и, c). с ними).
x> вылить воду из сосуда x (вместо x должен быть один из символов a), 10 л (b) и, b) и, c). с ними).
x> y перелить воду из x в y (вместо x и y должны быть два различных символа
из a), 10 л (b) и, b) и, c). с ними). нельзя переливать воду из одного сосуда в тот же самый сосуд.
команды записываются по одной в строке. например, следующая
последовательность команд
> b
b> c
c>
обозначает, что сначала наполняется сосуд b) и, потом вода из сосуда b) и переливается в сосуд c). с ними,
потом из сосуда c). с ними выливается вся вода.
чем меньше воды будет использовано для реализации вашего алгоритма, тем больше
вы получите.
>B
B>C
>A
A>C
в A окажется 1 литр
Использовано 16 литров