给定一个长度为 n 的数组 a[],支持以下两种操作共 q 次: 1.单点修改:1 pos x,将第 pos 个位置的数改为 x; 2.区间排列判定:2 l1 r1 l2 r2,询问两段区间 [l1, r1] 和 [l2, r2] 是否互为排列(即包含完全相同的多重集:每个数值出现次数分别相等,且长度相同)。
第一行两个正整数 n, q(1 ≤ n, q ≤ 10^5),分别表示数组长度和操作次数。 第二行 n 个正整数 a1, a2, ..., an(1 ≤ ai ≤ 10),表示初始数组。 接下来 q 行,每行描述一条操作: 若为 1 pos x,表示将第 pos 个位置修改为 x(1 ≤ pos ≤ n,1 ≤ x ≤ 10^5); 若为 2 l1 r1 l2 r2,表示查询区间 [l1, r1] 和 [l2, r2] 是否互为排列(1 ≤ l1 ≤ r1 ≤ n,1 ≤ l2 ≤ r2 ≤ n)。
对于每条查询操作,如果两段区间互为排列,输出 Yes,否则输出 No。
5 3 1 2 3 2 1 2 1 3 3 5 1 3 5 2 2 4 1 3
Yes No