Задача Задача №3552164
А
А
Задача ясна: имеем два кувшина — 3 л и 8 л. Можно пользоваться только ими и источником воды (река). Нужно набрать ровно 7 литров.
Решение в естественном языке (пошагово):
- Полностью заполните 8-литровый кувшин из реки. Сейчас в 8-литровом кувшинe 8 л, в 3-литровом — 0 л.
- Переливайте воду из 8-литрового кувшина в 3-литровый, пока 3-литровый не заполнится. После этого в 8-литровом останется 5 л, в 3-литровом будет 3 л (полный).
- Опустошите 3-литровый кувшин обратно в реку. Теперь в 3-литровом 0 л, а в 8-литровом — 5 л.
- Перелейте воду из 8-литрового кувшина в 3-литровый ещё раз, пока 3-литровый не заполнится. В итоге в 8-литровом останется 2 л, в 3-литровом станет 3 л.
- Опустошите 3-литровый кувшин обратно в реку. Теперь в 3-литровом 0 л, а в 8-литровом — 2 л.
- Переложите воду из 8-литрового кувшина в 3-литровый: в 3-литровом окажется 2 л, а в 8-литровом останется 0 л.
- Заполните снова 8-литровый кувшин из реки. Теперь в 8-литровом снова 8 л, в 3-литровом — 2 л.
- Перелейте воду из 8-литрового кувшина в 3-литровый до заполнения 3-литрового. 3-литровый заполнится до 3 л, а в 8-литровом останется 7 л. Итого: в 8-литровом кувшине ровно 7 литров воды. Можно взять их из него.
Пояснение к пониманию (почему работает):
- gcd(8, 3) = 1, значит любую целую литровую величину между 0 и 11 (общий объём) можно получить комбинациями заполнения, переливания и опустошения; в данном случае путь приводит к состоянию, когда 8-литровый кувшин содержит 7 л.
- Последовательность действий сознательно чередует заполнение и освобождение 3-литрового кувшина, чтобы постепенно «вычитать» из 8 литров нужную величину и добиться конечного результата 7 л.