文本校正

Special Judge 提交数: 2, 通过率: 0%, 平均分: 0

题目描述:

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

输入格式:

第一行包含一个正整数Case,表示需要进行的校正次数。
接下来Case个部分依次表示每次校正工作,每个部分第一行包含两个正整数n; m,分别表示文本串的长度以及字符集的大小。
每个部分第二行包含n个正整数S1; S2; :::; Sn,表示S串。
每个部分第三行包含n个正整数T1; T2; :::; Tn,表示T串。

输出格式:

对于每次校正工作,若无解,则仅输出一行\NO"(不含引号),否则第一行输出\YES"(不含引号),
接下来三行每行两个正整数li; ri,按拼接顺序依次表示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 ≤ n ≤ 1000000; 1 ≤ Si; Ti ≤ m ≤ 1000000。

测试点编号 n; m Case P n; P m
1,2 ≤ 6 ≤ 50000 ≤ 300000
3,4,5,6 ≤ 2000 ≤ 10 ≤ 20000
7,8,9,10,11,12 ≤ 200000 ≤ 30 ≤ 200000
13,14,15,16,17,18,19,20 ≤ 1000000 ≤ 30 ≤ 1000000

 

时间限制: 1000ms
空间限制: 256MB

来源: 山东省选2017day4t3