На досуге вы любите почитать сборники занимательных по . недавно вы наткнулись в одном из таких сборников на следующую : есть бесконечный резервуар с водой и два пустых сосуда объёмом 5 и 12 литров. можно наливать воду из резервуара в любой сосуд до его заполнения, переливать воду из —одного сосуда в другой до заполнения второго или опустошения первого (смотря что будет раньше) и выливать воду из сосуда на землю до полного опустошения сосуда. как таким образом можно отмерить 3 литра? вы решили написать программу, которая будет решать подобные для произвольных объёмов сосудов. входные данные во входном файле находятся три целых числа — v1, v2 и v — объёмы двух сосудов и объем воды, который нужно отмерить. гарантируется, что 1v1v232767 и 0vmax(v1v2). выходные данные в первую строку выходного файла выведите одно число — количество действий в вашем решении. далее выведите соответствующее количество строк, описывающих действия в вашем решении. для каждого действия выведите два числа: если это действие — переливание из одного сосуда в другой, то первое число должно быть номером сосуда, откуда надо переливать воду, а второе — номером сосуда, куда переливать; если это действие — набор воды из резервуара, то первое число должно быть нулём, а второе — номером сосуда, куда наливать; если это действие — выливание воды “на землю”, то первое число должно быть номером сосуда, а второе — нулём. после выполнения всех операций хотя бы в одном сосуде должна находиться вода в объёме v. если существует несколько решений, то вы можете вывести любое. ваше решение не обязано быть оптимальным, единственное ограничение — размер выходного файла не должен превосходить 3 мб. если решений не существует, выведите одно число -1.

angelinaguseyn angelinaguseyn    2   23.04.2019 06:31    18

Другие вопросы по теме Информатика