Задача 3: Водолей У исполнителя Водолей есть два сосуда: сосуд A объемом 3 литра и сосуд B объемом 7 литров. Также исполнитель Водолей умеет выполнять команды:
наполнить сосуд A — сосуд наполняется водой до полного заполнения,
наполнить сосуд B — сосуд наполняется водой до полного заполнения,
опустошить сосуд A — вся вода из сосуда A выливается,
опустошить сосуд B — вся вода из сосуда B выливается,
перелить в B — вода из A переливается в B, пока не выльется полностью либо пока в B есть место; оставшаяся вода остается в сосуде A,
перелить в A — вода из B переливается в A, пока не выльется полностью либо пока в A есть место; оставшаяся вода остается в сосуде B.
У вас есть алгоритм для исполнителя Водолей из 10 команд, в которой не проставлены названия сосудов.
наполнить ...
перелить в ...
опустошить ...
наполнить ...
перелить в ...
опустошить ...
перелить в ...
опустошить ...
наполнить ...
перелить в ...
Вы не можете влиять на последовательность команд, но можете менять названия сосудов, задавая соответственно A — для первого сосуда и B — для второго.
Напишите последовательность названий сосудов, которые нужно подставить в указанный выше список команд, чтобы получить необходимое количество литров в каждом из представленных ниже случаев (в начальный момент выполнения алгоритма сосуды пусты):
A = 0, B = 6,
A = 3, B = 1,
A = 0, B = 4,
A = 3, B = 6,
A = 2, B = 7.
Для каждой пары значений вам необходимо в ответе записать одну строку, состоящую из латинских символов A и B, которые будут подставлены в приведенный выше алгоритм. В ответе должно быть ровно пять строк, состоящих из последовательностей символов A и B без разделителей. Длина корректной последовательности должна быть равна 10 символам. Если вы не смогли составить алгоритм для какого-то из случаев, то напечатайте в этой строке единственный символ A.
то, короче, решение диофантова уравнения: Ax - By = N
1. наливаем в A, переливаем в B, пока B не наполнится
2. выливаем из B
3. переливаем остаток из A в B
повторяем пункты 1-3, пока уровень в A или B не станет равным N
если решений нет, то НОД (A, B) не делит N нацело, так что алгоритм зацикливается.
Объяснение:
хз