#P1614. 构造数组
构造数组
Description
Orange有一个创造数组的能力:
- 首先,Orange会创造一个包含 个位置的空数组。
- 然后他将选择一个位置 ,作为起始位置,并且将 设置为一个任意值。
- 现在他可以任意进行如下2种操作任意次,直到把数组填满:
- 如果左边仍然有空位,则向左边加入一个数,这个数必须满足其不超过当前数组中存在的最右边的数。
- 如果右边仍然有空位,则向右边加入一个数,这个数必须满足其不超过当前数组中存在的最左边的数。
现在,Orange得到一个目标数组 ,请帮助他将其构造出来,给出构造方案。
Format
Input
输入包含2行,第一行为一个整数 ,表述目标数组长度。
第二行为 个整数 ,表示目标序列。
对于 70% 的数据,,对于 100 % 的数据, 。
Output
输出第一行包含2个整数 和 ,表示你选择的初始位置 和对应的初始值 。
接下来 行,每行格式为 'op x',op为L表示向左边加入一个数x,op为R则表示向右边加入x。
在保证操作合法的前提下,输出任意一种操作序列即可。
Samples
5
1 2 3 4 5
5 5
L 4
L 3
L 2
L 1
5
5 4 5 4 1
3 5
L 4
L 5
R 4
R 1
Note
对于第二个样例,首先选择从位置3开始,并且将初始值设置成5,此时序列为 ,当前最左边和最右边的数都是 。
然后向左加入一个4 (4小于等于序列最右边的数字5,因此可以加入) ,序列变成 ,此时序列最右边的数字仍然是 ,但是最左边的数字变成 。
之后的步骤同理。