Дано два відра різного розміру та вказівку, яке з них наповнювати першим. Визначте, скільки дій потрібно, щоб відміряти точну кількість літрів, стратегічно переливаючи рідину між відрами.
Рішення має дотримуватися кількох правил:
Програма приймає як вхідні дані:
Програма має визначити:
Примітка: будь-яка зміна в одному чи обох відрах вважається однією (1) дією.
Приклад: Перше відро вміщає до 7 літрів, а друге - до 11 літрів. Нехай на певному кроці в першому відрі 7 літрів, а в другому 8 літрів (7,8). Якщо спорожнити перше відро й нічого не робити з другим, отримавши відповідно 0 літрів і 8 літрів (0,8), це вважається однією дією. Натомість, якби ми перелили з першого відра в друге, доки друге не наповнилося вщерть, і отримали 4 літри в першому відрі та 11 літрів у другому (4,11), це теж вважалося б лише однією дією.
Ще один приклад: Перше відро вміщає 3 літри, а друге - до 5 літрів. Нам сказано, що починати треба з першого відра. Отже, перша дія - наповнити перше відро. Другою дією ми вирішуємо спорожнити перше відро. Третьою дією не можна наповнювати друге відро, бо це порушує третє правило: після жодної дії не можна опинитися в стані, коли стартове відро порожнє, а інше наповнене вщерть.
Написано з <3 у Fullstack Academy Ліндсі Левін.