题目描述
Swipe 是一款新的手机游戏,最近大受欢迎。在 Swipe 游戏的每一个关卡中,您都会得到两个长度为 N 的数列 A 和 B。Swipe 游戏的每个关卡的目标是把数组 A 变成数组 B。
现在有两种可以对 A 进行的滑动操作。
- 向右滑动:选择一个区间 [l,r],对任意 l≤i≤r 令 Ai=Al。
- 向左滑动:选择一个区间 [l,r],对任意 l≤i≤r 令 Ai=Ar。
例如,一开始 A=[0,1,2,3,4,5],如果我们对区间 [2,4] 做向右滑动的操作,序列变为 [0,1,2,2,2,5]。如果我们对区间 [3,5] 做向左滑动的操作,序列变为 [0,1,2,5,5,5]。注意序列从 0 开始编号。
不幸的是,游戏存在一些问题,可能会包含无法通过的关卡。请问是否可以将数组 A 转换为数组 B。如果可以,请给出任意一种将数组 A 转换为数组 B 的滑动操作方案。
输入格式
输入的第一行包含一个正整数 N 表示两个数列的长度。
第二行包含 N 个空格隔开的 A 中的整数。
第三行包含 N 个空格隔开的 B 中的整数。
输出格式
如果存在一种操作方案可以把 A 变为 B,在第一行输出 YES,否则输出 NO。
如果在第一行输出了 YES,则下一行包含一个非负整数 K(K≤N)表示滑动次数。
接下来 K 行每行包含三个空格隔开的数 Dj,lj 和 rj。Dj 是 R 或者 L 表示第 j 次操作是向右滑动还是向左滑动。
lj 和 rj 表示这次滑动操作的左端和右端,必须满足 0≤lj≤rj<N。
样例
样例输入 1
3
3 1 2
3 1 1
样例输出 1
YES
1
R 1 2
样例输入 2
4
1 2 4 3
1 4 2 3
样例输出 2
NO
样例输入 3
4
2 1 4 3
2 1 4 3
样例输出 3
YES
0
数据范围
对于所有数据,1≤N≤3×105,1≤Ai,Bi≤3×105。
本题共 20 个测试点,每个测试点 5 分,合计 100 分。
| 测试点编号 |
测试点数 |
数据范围 |
| 1 ~ 2 |
2 |
N=2,1≤Ai,Bi≤3 |
| 3 ~ 6 |
4 |
1≤N≤8,1≤Ai,Bi≤8 |
| 7 ~ 12 |
6 |
1≤N≤500,1≤Ai,Bi≤3000 |
| 13 ~ 20 |
8 |
1≤N≤3×105,1≤Ai,Bi≤3×105 |