#P5868. [SEERC2018] Min Max Convert

[SEERC2018] Min Max Convert

题目描述

AA 是一个有 NN 个元素的数列。你可以对这个数列进行以下两种操作:

  1. 选出一个下标的区间 [a,b] (1abN)[a, b] \ (1 \leq a \leq b \leq N),设数列中在这个下标区间中的元素的最大值为 xx,将这个下标区间中的所有元素替换为 xx
  2. 选出一个下标的区间 [a,b] (1abN)[a, b] \ (1 \leq a \leq b \leq N),设数列中在这个下标区间中的元素的最小值为 xx,将这个下标区间中的所有元素替换为 xx

计算出一组操作方案,使数列 AA 变为另一个给定的数列 BB(也有 NN 个元素)。方案中操作的数列必须小于等于 2N2N

输入格式

第一行包含一个整数 NN

第二行包含一个有 NN 个元素的数列 AA

第三行包含另一个有 NN 个元素的数列 BB

输出格式

如果无解,输出 1-1。否则在第一行输出一个整数 xx,代表将数列 AA 变为 BB 所需的最小操作数量。接下来 xx 行每行包含一个字符(代表操作的类型,m 代表使用了最小值的操作,M 代表使用了最大值的操作)和一个区间 (a,b)(a,b),描述了所需的每次操作信息。如果有多解,任意输出一组即可。

5
1 5 5 3 4
1 1 4 4 4
3
m 1 2
M 4 5
m 3 5
5
1 2 3 4 4
2 2 2 2 5
-1

提示

  • 1N100,0001 \leq N \leq 100, 000
  • 数列 AABB 中的元素都是区间 [1,N][1, N] 中的整数