#P309. 施法顺序

施法顺序

施法顺序

注意:此题是SPJ

题目背景

尊贵的司辰,在一次出任务的过程中,您和您的神秘学家们遭到了“重塑之手”的袭击。您需要立刻指挥您的神秘学家们发起反击……

题目描述

您的神秘学家们会 nn 种咒语。在接下来的战斗中,每种咒语都将施放且仅施放一次

按照灵性直觉的指引,你想到了一种施放咒语的顺序:a1,a2,,ana_1,a_2,……,a_n

然而,现在的施法顺序是 1,2,,n1,2,……,n

于是,你打算重新安排施放顺序,但是出于实际条件所限,你只能做到这样三件事:

  • 倒转整个施法序列(例如,把 12341234 变成 43214321
  • 将第二个施放的咒语调整到最后一个施放
  • 最多十次,将第一个施放的咒语调整到最后一个施放

每次做一件事都需要花费一个单位时间,情况紧急,你必须要在 2×1062\times10^6 个单位时间内完成调整,请你给出一种可行的方案。

输入格式

第一行,一个整数 nn,表示咒语的总个数。

第二行,nn 个使用空格分开的整数,表示你最终要调整到的顺序。

输出格式

第一行,一个整数 TT ,表示你总共花费的时间。

第二行,TT 个中间以空格分割的整数,表示操作方案。11 表示做了一次第一件事,22 表示做了一次第二件事,33 表示做了一次第三件事。注意,你的操作方案中至多出现十个 33

输入样例

4
3 2 4 1

输出样例

3
2 2 1

提示说明

一共进行了三步操作,这里展示出操作以后的顺序:

  • 1 3 4 2
  • 1 4 2 3
  • 3 2 4 1

数据范围

对于 30%30\% 的数据,n6n \leq 6

对于 60%60\% 的数据,n100n \leq 100

对于 100%100\% 的数据,n1000n \leq 1000

{ai}\{a_i\} 构成 11nn 的排列。