4294: 「SDOI2017」文本校正

内存限制:512 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

小 Q 在研发一种数据混淆的算法时不慎将重要的文档都给混淆了。幸运的是,将这些文档校正对于他来说并不是难事。他凭借着敏锐的观察力成功地用肉眼完成了校正。 为了防止这种情况再次发生,小 Q 希望开发一种文本校正工具,他的目标是将一个文本串 $T$ 分成连续的 $3$ 段,要求每段都不能为空,然后按一定顺序将这 $3$ 段从左往右拼接起来,将其还原为初始文本串 $S$。 在进行了大量肉眼校正工作之后,小 Q 需要休息一下,因此他把这个任务交给了你。请写一个程序,判断是否可以还原,并给出一个合法的还原方案。

输入

第一行包含一个正整数 $\mathrm {Case}$,表示需要进行的校正次数。 接下来 $\mathrm {Case}$ 个部分依次表示每次校正工作,每个部分第一行包含两个正整数 $n$,$m$,分别表示文本串的长度以及字符集的大小。 每个部分第二行包含 $n$ 个正整数 $S_1, S_2, \dots, S_n$,表示 $S$ 串。 每个部分第三行包含 $n$ 个正整数 $T_1, T_2, \dots, T_n$,表示 $T$ 串。

输出

对于每次校正工作,若无解,则仅输出一行 ``NO``,否则第一行输出 ``YES``,接下来三行每行两个正整数 $l_i$,$r_i$,按拼接顺序依次表示 $T$ 的 $3$ 个子串。 若存在多种还原方案,请输出任意一种。

样例输入 复制

3
5 3
2 1 1 1 1
1 1 1 1 2
5 5
5 2 3 3 4
2 5 3 4 3
5 5
4 5 2 1 4
5 4 2 1 4

样例输出 复制

YES
5 5
1 3
4 4
NO
YES
2 2
1 1
3 5

提示


数据范围:对于 $100\%$ 的数据,$3 \leq n \leq 1000000$,$1 \leq S_i. T_i \leq m \leq 1000000$。 | 测试点编号 | $n, m$ | $\mathrm {Case}$ | $\sum n, \sum m$ | | :-: | :-: | :-: | :-: | | 1 ~ 2 | $\leq 6$ | $\leq 50000$ | $\leq 300000$ | | 3 ~ 6 | $\leq 2000$ | $\leq 10$ | $\leq 20000$ | | 7 ~ 12 | $\leq 200000$ | $\leq 30$ | $\leq 200000$ | | 13 ~ 20 | $\leq 1000000$ | $\leq 30$ | $\leq 1000000$ |

来源/分类