译自 COI 2011 T1。
为了将工厂中的工作自动化,Mirko 希望利用一台老旧的分拣机器人来整理箱子。工厂中有 个箱子,编号分别为 到 的不同整数,需要按照编号升序排列。
这台分拣机器人只能执行一种特定操作:对于给定的一组不同位置,机器人会循环移动这些位置上的箱子。例如,如果初始箱子顺序为 ,而 Mirko 向机器人发出指令 ,则机器人会将位置 的箱子移到位置 ,位置 的箱子移到位置 ,位置 的箱子移到位置 。操作后的箱子顺序将变为 。
请编写一个程序,设计必要的指令,使得机器人能够用最少的操作次数将给定的箱子序列排序。在此过程中,单次操作的长度(即需要循环移动的位置数量)并不重要。