题目 20364

滑动

查看题解 ↗GitHub ↗如何评测
题号
20364
时间限制
1000 ms
内存限制
256 MB
标签
比赛CSP-S
来源
CSP-S 国外模拟赛 21 - T2

第 2 题 滑动 (swipe)

CSP-S 复赛模拟赛 21 · 时间限制 1.0 s · 空间限制 256 MB · 70 个测试点 · 全文比较(过滤行末空格及文末回车)

本题使用文件输入输出:输入文件 swipe.in,输出文件 swipe.out。

题目描述

Swipe 是一款新的手机游戏,最近大受欢迎。在 Swipe 游戏的每一个关卡中,您都会得到两个长度为 NN 的数列 AA 和 BB。Swipe 游戏的每个关卡的目标是把数组 AA 变成数组 BB。

现在有两种可以对 AA 进行的滑动操作。

  • 向右滑动:选择一个区间 [l,r][l, r],对任意 l≤i≤rl \le i \le r 令 Ai=AlA_i = A_l。
  • 向左滑动:选择一个区间 [l,r][l, r],对任意 l≤i≤rl \le i \le r 令 Ai=ArA_i = A_r。

例如,一开始 A=[0,1,2,3,4,5]A = [0, 1, 2, 3, 4, 5],如果我们对区间 [2,4][2, 4] 做向右滑动的操作,序列变为 [0,1,2,2,2,5][0, 1, 2, 2, 2, 5]。如果我们对区间 [3,5][3, 5] 做向左滑动的操作,序列变为 [0,1,2,5,5,5][0, 1, 2, 5, 5, 5]。注意序列从 00 开始编号。

不幸的是,游戏存在一些问题,可能会包含无法通过的关卡。请问是否可以将数组 AA 转换为数组 BB。如果可以,请给出任意一种将数组 AA 转换为数组 BB 的滑动操作方案。

输入格式

输入的第一行包含一个正整数 NN 表示两个数列的长度。

第二行包含 NN 个空格隔开的 AA 中的整数。

第三行包含 NN 个空格隔开的 BB 中的整数。

输出格式

如果存在一种操作方案可以把 AA 变为 BB,在第一行输出 YES,否则输出 NO。

如果在第一行输出了 YES,则下一行包含一个非负整数 KK(K≤NK \le N)表示滑动次数。

接下来 KK 行每行包含三个空格隔开的数 Dj,ljD_j, l_j 和 rjr_j。DjD_j 是 R 或者 L 表示第 jj 次操作是向右滑动还是向左滑动。

ljl_j 和 rjr_j 表示这次滑动操作的左端和右端,必须满足 0≤lj≤rj<N0 \le l_j \le r_j < N。

样例

样例 1

输入:

文本
3
3 1 2
3 1 1

输出:

文本
YES
1
R 1 2

样例 2

输入:

文本
4
1 2 4 3
1 4 2 3

输出:

文本
NO

样例 3

输入:

文本
4
2 1 4 3
2 1 4 3

输出:

文本
YES
0

提示

本题采用捆绑测试。

对于所有数据,保证 1≤N≤3×1051 \le N \le 3 \times 10^5,1≤Ai,Bi≤3×1051 \le A_i, B_i \le 3 \times 10^5。

下面的表格显示了 15 分的分配方案:

分值 NN 的范围 AiA_i 和 BiB_i 的范围
2 N=2N = 2 1≤Ai,Bi≤31 \le A_i, B_i \le 3
4 1≤N≤81 \le N \le 8 1≤Ai,Bi≤81 \le A_i, B_i \le 8
4 1≤N≤5001 \le N \le 500 1≤Ai,Bi≤30001 \le A_i, B_i \le 3000
5 1≤N≤3×1051 \le N \le 3 \times 10^5 1≤Ai,Bi≤3×1051 \le A_i, B_i \le 3 \times 10^5

注意对于一个分值为 MM 的子任务,如果只答对了第一行的内容,你可以得到 ⌊M2⌋\left\lfloor \dfrac{M}{2} \right\rfloor 分。

数据下载

题目 20364 的公开数据

正在读取文件列表…

常用命令

题目 20364 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。