Задача MILITARY2
(вновь предоставлена
министерством обороны)
Герой задачи Military, сержант с
необычайными математическими
способностями, решил все-таки обучить
новобранцев становиться в колонну по
одному. Он взял шестерых бойцов разного
роста, и грозным голосом крикнул "Становись!".
Стали новобранцы, разумеется, вновь, как
попало. Но сержант на этот раз решил
действовать строго по науке. Он долго и
старательно объяснял широко открывшим рот
новобранцам смысл новых команд. По команде
"1" первые четыре новобранца должны
перестроится в обратном порядке, по команде
"2" перестроится в обратном порядке
должны новобранцы, начиная со второго и,
заканчивая пятым, а по
команде "3" в обратном порядке
перестраиваются те, кто в колонне занимает
места, начиная с третьего по шестое. Сержант
громовым голосом выкрикивал номера команд
в какой-то одному ему известной
последовательности, а испуганные рекруты
аккуратно их выполняли.
В конечном итоге колонна стала такой, какой
она должна быть по уставу, т.е. солдаты
стояли по росту.
Сколько команд и в какой
последовательности подавал сержант?
Ограничения:
Рост новобранцев
измеряется в сантиметрах и не превышает 250.
Решение всегда существует, т.е. солдат
всегда можно выстроить по росту. При этом
первым должен стоять самый высокий, а
последним – самый низкий солдат. Если
существует несколько решений, можно
вывести любое из них.
Ввод-вывод:
Программа
должна прочитать с клавиатуры шесть чисел
– рост шестерых новобранцев. Программа
должна вывести в первой строке количество
команд, а в следующих строках – сами
команды.
Пример:
Ввод> 170 172 178 196 189 185
Вывод> 3
Вывод> 1
Вывод> 2
Вывод> 3
[В этом примере
новобранцы перемещаются так:
Начальное положение : 170 172 178
196 189 185;
После первой команды : 196 178 172
170 189 185;
После второй команды : 196 189 170
172 178 185;
После третьей команды : 196 189
185 178 172 170 ]
|