P5868 [SEERC 2018] Min Max Convert
题目描述
$A$ 是一个有 $N$ 个元素的数列。你可以对这个数列进行以下两种操作:
1. 选出一个下标的区间 $[a, b] \ (1 \leq a \leq b \leq N)$,设数列中在这个下标区间中的元素的最大值为 $x$,将这个下标区间中的所有元素替换为 $x$。
2. 选出一个下标的区间 $[a, b] \ (1 \leq a \leq b \leq N)$,设数列中在这个下标区间中的元素的最小值为 $x$,将这个下标区间中的所有元素替换为 $x$。
计算出一组操作方案,使数列 $A$ 变为另一个给定的数列 $B$(也有 $N$ 个元素)。方案中操作的数列必须小于等于 $2N$。
输入格式
第一行包含一个整数 $N$。
第二行包含一个有 $N$ 个元素的数列 $A$。
第三行包含另一个有 $N$ 个元素的数列 $B$。
输出格式
如果无解,输出 $-1$。否则在第一行输出一个整数 $x$,代表将数列 $A$ 变为 $B$ 所需的最小操作数量。接下来 $x$ 行每行包含一个字符(代表操作的类型,`m ` 代表使用了最小值的操作,`M` 代表使用了最大值的操作)和一个区间 $(a,b)$,描述了所需的每次操作信息。如果有多解,任意输出一组即可。
说明/提示
- $1 \leq N \leq 100, 000$
- 数列 $A$ 和 $B$ 中的元素都是区间 $[1, N]$ 中的整数