Задача №53. Контейнеры
Разбор добавил Самвел Вартапетов
Если введённая расстановка имеет решение, то следуем следующему алгоритму: Выбираем стопку-склад, в которую будем складывать все контейнеры, например первую. проходим каждую стопку, кроме складной, и, если верхнюю нельзя положить в свою стопку, то есть, там есть какие-то лишние ящики, кладём её в склад-стопку, иначе - в свою стопку. Делее - выбираем резервную стопку, например последнюю, в которую будем класть контейнеры первого типа. Берём верхний контейнер со стопки-склада и, если он не является первым - кладём его в свю стопку, иначе - кладём в резервную, запоминая этот ход, когда в первой стопке будет контейнер из резервной стопки, кладём его в любую стопку, отличную от склада и резервной, потом перекладываем контейнер из резервной в первую, и ставим на место контейнер из резервного типа. Так поступаем до тех пор, пока в стопке-складе не останутся все контейнеры этого типа. Далее проверяем, есть ли такие контейнеры в резервной, и если есть - просто перекладываем их на место. Все перекладывания делаем до тех пор, пока наверху лежит контейнер данного типа.Сдать: для сдачи задач необходимо войти в систему
3018
statement