/ Vijos / 题库 /

文本校正

文本校正

描述

小Q在研发一种数据混淆的算法时不慎将重要的文档都给混淆了。幸运的是,将这些文档校正对于他来说并不是难事。他凭借着敏锐的观察力成功地用肉眼完成了校正。

为了防止这种情况再次发生,小Q希望开发一种文本校正工具,他的目标是将一个文本串\(T\)分成连续的3段,要求每段都不能为空,然后按一定顺序将这3段从左往右拼接起来,将其还原为初始文本串\(S\)。

在进行了大量肉眼校正工作之后,小Q需要休息一下,因此他把这个任务交给了你。请写一个程序,判断是否可以还原,并给出一个合法的还原方案。

格式

输入格式

第一行包含一个正整数\(Case\),表示需要进行的校正次数。

接下来\(Case\)个部分依次表示每次校正工作,每个部分第一行包含两个正整数\(n,m\),分别表示文本串的长度以及字符集的大小。

每个部分第二行包含\(n\)个正整数\(S_1,S_2,...,S_n\),表示\(S\)串。

每个部分第三行包含\(n\)个正整数\(T_1,T_2,...,T_n\),表示\(T\)串。

输出格式

对于每次校正工作,若无解,则仅输出一行NO,否则第一行输出YES,接下来三行每行两个正整数\(l_i,r_i\),按拼接顺序依次表示\(T\)的3个子串。

若存在多种还原方案,请输出任意一种。本题提供 Special Judge。

样例1

样例输入1

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

样例输出1

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

限制

有 \(20\%\) 的数据,\(n,m\le 6\),\(Case\le 50000\) 且 \(\sum n, \sum m \le 300000\)。

有 \(30\%\) 的数据,\(n,m\le 2000\),\(Case\le 10\) 且 \(\sum n, \sum m \le 20000\)。

有 \(30\%\) 的数据,\(n,m\le 200000\),\(Case\le 30\) 且 \(\sum n, \sum m \le 200000\)。

有 \(20\%\) 的数据,\(n,m\le 1000000\),\(Case\le 30\) 且 \(\sum n, \sum m \le 1000000\)。

对于所有数据有,\(3\le n\) 且 \(1\le S_i,T_i\le m\)。

来源

SDOI 2017 Round2 Day2

信息

ID
2040
难度
8
分类
(无)
标签
递交数
19
已通过
8
通过率
42%
被复制
2
上传者

相关

在下列训练计划中:

RP++分类题库