#1646. 双轨车皮编序问题
双轨车皮编序问题
题目描述
在一个列车调度站中, 条轨道连接到条侧轨处,形成 个铁路转轨栈。其中左边轨道为车皮入口,编号为;右边轨道为出口,编号为 个铁路转轨栈分别编号为和,如下图所示。编号为,的 个车皮依序停放在车皮入口处。调度室要安排各车皮进出栈次序,使得在出口处各车皮按照预先指定的顺序依次出站。车皮移动时只能按照从左到右的方向移动。
给定车皮数,以及各车皮的出站顺序,编程计算最优调度方案,使得移动车皮的总次数最少。
输入格式
第一行有 个正整数,表示车皮数。接下来的 行中,是预先指定的车皮出站顺序。
输出格式
文件的第一行是最少移动次数。接下来的行是对应于最优方案的次移动。每次移动用形如的 个字符来表示,其中 表示车皮编号,表示起始栈轨号, 表示目标栈轨号。如果无法调度则输出“No Solution!”
。
样例
输入样例
3
abc
输出样例
5
c A B
b A B
a A D
b B D
c B D