#364. [R58E]排序

[R58E]排序

时空限制

1S/512M

题目描述

给出一个长度为偶数 nn 的排列^{\dagger} aa,你可以对它进行至多 2×n2 \times n 次操作

对于每次操作:

1.将 a1an2a_1 \dots a_{\frac{n}{2}} 加入初始为空的队列 ll。将 an2+1ana_{\frac{n}{2}+1} \dots a_{n} 加入初始为空的队列 rr

2.新建一个数组 bb,进行 nn小操作

3.每次小操作,弹出 l,rl,r 两队列中任意一个不为空队列的队首,放入 bb 数组最后面。

4.将 aa 赋值为 bb

现在请你构造一组操作方案使得最后 aa 单调递增,即为 1,2n1 ,2\dots n

^{\dagger}:长度为 nn 的排列是指一个包含 11nn 中每个正整数各恰好一次的序列。例如,[2,3,1,5,4][2, 3, 1, 5, 4] 是一个长度为 55 的排列,而 [1,2,2][1, 2, 2][1,3,4][1, 3, 4] 则不是。

格式

输入格式

第一行包含一个正整数 nn,表示数组的长度。

第二行包含 nn 个数 a1,a2,a3,ana_1 ,a_2 ,a_3 ,\cdots a_n,表示 aa 数组。

输出格式

第一行输出一个非负整数 kk

22k+1k+1 行,每行输出一个长度为 nn 的字符串,保证其中包含字符 l,rl,r 的个数相同,第 ii 个字符为你选择弹出队首的队列。

注意:kk 必须小于等于 2×n2 \times n

样例

样例输入 #1

4
1 4 2 3

样例输出 #1

1
lrrl

样例输入 #2

6
1 3 2 6 5 4

样例输出 #2

3
llrlrr
lrrlrl
llrrlr

数据规模

注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。

子任务编号 分数 特殊性质
11 2020 特殊性质 A
22 8080

特殊性质 A:in2i \leq \frac{n}{2} 时,ai=i×21a_i = i \times 2 - 1n2<in \frac{n}{2}< i \leq n 时,ai=(in2)×2a_i = (i - \frac{n }{2}) \times 2

对于 100%100\% 的数据,2n1032 \leq n\leq 10^31ain1 \leq a_i \leq n,且 aia_i 互不相同。