单向双轨道

成绩 0 开启时间 2013年02月21日 星期四 18:02
折扣 0.8 折扣时间 2013年02月28日 星期四 18:02
允许迟交 关闭时间 2013年02月28日 星期四 18:02
输入文件 track.in 输出文件 track.out

【问题描述】
    如图,某火车站有B,C两个调度站,左边入口A处有n辆火车等待进站(从左到右 以a、b、c、d编号),右边是出口D,规定在这一段,火车从A进入经过B、C只能从左向右单向 开,并且B、C调度站不限定所能停放的车辆数。

    从文件输入n及n个小写字母的一个排列,该排列表示火车在出口D处形成的从左到右 的火车编号序列。输出为一系列操作过程,每一行形如“h L R”的字母序列,其中h为火车编 号,L为h车原先所在位置(位置都以A、B、C、D表示),R为新位置。或者输出‘NO’表示不 能完成这样的调度。

【输入格式】

一个数n(1个小写字母组成的字符串。


【输出格式】
   可以调度则输出最短的调度序列,不可以调度时则输出‘NO’。

【输入输出样例】
 
输入:
track.in
3
cba

输出:
track.out
c A B
b A C
a A D
b C D
c B D