Разработка скрипта «Головоломка с кувшином для воды»

Условие задачи

Для набора из 3 кувшинов с водой емкостью A, B и C литров найдите минимальное количество операций, выполняемых перед тем, как каждый кувшин наберет x, y и z литров. Только кувшин С может полностью заполняться. Операция может быть любой из следующих: кувшин опорожняется, кувшин наполняется, или вода переливается из одного кувшина в другой, пока один из кувшинов не станет пустым или полным. Например, кувшины A, B и C вместимостью 3, 5 и 8 литров, где кувшины A и B вначале пусты, а C имеет полных 8 литров, требуют 2 операций для достижения состояния 0, 3 и 5 литров в кувшины. Создайте функцию, которая, учитывая массив емкостей кувшина [A, B, C] и массив состояний цели [x, y, z], возвращает минимальное количество операций, необходимых для достижения состояния цели. Если введенные данные недействительны или решения нет, верните «Нет решения». Количество воды в кувшине никогда не может превышать вместимость этого кувшина. Общее количество литров в целевом состоянии должно быть равно вместимости кувшина C.

Ход работы

1. Введите общий объем каждого кувшина:


2. Введите объем каждого кувшина, который необходимо получить:

Способ решения