A90377.「SDOI2017」文本校正
NOI/NOI+/CTSC
通过率:0%
时间限制:1.00s
内存限制:512MB
题目描述
小 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 个子串。
若存在多种还原方案,请输出任意一种。
输入输出样例
输入#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
说明/提示
对于 100% 的数据,3≤n≤1000000,1≤Si.Ti≤m≤1000000。
| 测试点编号 | n,m | Case | ∑n,∑m |
|---|---|---|---|
| 1 ~ 2 | ≤6 | ≤50000 | ≤300000 |
| 3 ~ 6 | ≤2000 | ≤10 | ≤20000 |
| 7 ~ 12 | ≤200000 | ≤30 | ≤200000 |
| 13 ~ 20 | ≤1000000 | ≤30 | ≤1000000 |