#Chi1. 字符串匹配问题

字符串匹配问题

题目描述

下文定义子串 [l,r][l,r] 表示依次取出字符串中 ll 个字符到第 rr 个字符并按顺序拼接得到的新字符串,定义两个子串匹配当且仅当取出这两个子串作为独立的字符串后对应位置上的字符相同。

给定一个长度为 nn 的字符串,接下来会给你 qq 次询问,每次会取出这个字符串的两个子串 [l1,r1][l_1,r_1][l2,r2][l_2,r_2] ,并询问是否匹配。

不过有一个小小的问题,由于出题人很粗心,所以在取出字符串时他不小心把 区间 [l1,r1][l_1,r_1] 每个字符都用另一个字符替换掉了(也可能替换后和原来一样),不过假若原来某个 区间 [l1,r1][l_1,r_1] 某个位置上的字符的字典序大于 区间 [l1,r1][l_1,r_1] 另一个位置上的字符的字典序,那么在替换后这仍然成立。并且 替换后 区间 [l1,r1][l_1,r_1] 内若某个位置上的字典序大于区间 [l1,r1][l_1,r_1] 内另一个位置上的字典序,替换前这也成立。

问题是我们并只知道被替换的区间是 [l1,r1][l_1,r_1] ,并不知道被替换成了什么,但是没关系,你只要回答 有没有可能 匹配即可。请注意 在取出区间 [l2,r2][l_2,r_2] 时区间 [l1,r1][l_1,r_1] 还没有发生替换,取出字符串只是将对应位置字符串复制一遍,并 不会改变原字符串

字符集有一点大,因此我们会直接告诉你每个字符的字典序。

输入格式

第一行两个数 n,qn,q 接下来一行 nn 个数表示这个字符串每个位置上的字符的字典序,再接下来 qq 行每行四个数表示 l1,r1,l2,r2l_1,r_1,l_2,r_2

输出格式

对于每个询问输出 YesNo 表示是否 可能 匹配。

样例 #1

样例输入 #1

6 3
1 1 4 5 5 9
1 3 4 6
1 2 2 3
1 2 4 5

样例输出 #1

Yes
No
Yes

提示

我们令 aia_i 表示第 ii 个字符的字典序。

对于 100%100\% 的数据,保证 1n,q,ai1051 \leq n,q,a_i \leq 10^5r1l1=r2l2r_1 - l_1 = r_2 - l_2

开启子任务捆绑。

测试点编号 nn \leq qq \leq 特殊性质
131 \sim 3 10310^3
474 \sim 7 10510^5 保证 ai2a_i \leq 2
898 \sim 9 保证 ai>ai1a_i > a_{i-1}
102010 \sim 20

每个子任务分值为子任务中测试点数量乘 55