题目描述
给出一个长度为 n 的非负整数序列 a1,a2,a3,…,an,给出 q 次操作,每次先给出一个参数 op:
-
op=0,接下来给出 2 个参数 x,y,把 ax 修改为 y。
-
op=1,接下来给出 4 个参数 l1,r1,l2,r2(保证 r1−l1=r2−l2),你需要判断区间 [l1,r1] 与区间 [l2,r2] 是否本质相同,如果本质相同输出 YES
,否则输出 NO
。
本质相同的定义:令区间长度为 len ,序列 p1…plen 为 al1…ar1 升序排序后的结果,序列 q1…qlen 为 al2…ar2 升序排序后的结果,存在一个整数 k 使得满足 ∀i,pi+k=qi。
输入格式
第一行给出两个正整数 n,q,表示序列长度及操作次数。
第二行 n 个非负整数表示 a1,a2,a3,…,an。
接下来 q 行,每行为上述操作中的一种。
输出格式
对于 op=1 的操作,输出两个区间是否本质相同,如果是输出 YES
,否则输出 NO
。
12 6
1 1 4 5 1 4 2 2 5 2 3 3
1 1 3 7 9
1 2 3 5 6
1 1 3 2 4
0 7 1
1 1 4 2 5
1 5 7 8 10
YES
YES
NO
YES
YES
提示
-
Subtask1 (25 pts):1≤n,q≤1000。
-
Subtask2 (25 pts):1≤n,q≤105,0≤ai,y≤100。
-
Subtask3 (25 pts):1≤n,q≤105。
-
Subtask4 (25 pts):无特殊限制。
你只有通过 subtask 中的所有测试点才能获得该 subtask 的分数。
对于所有数据满足:1≤n,q≤106,1≤x≤n,0≤ai,y≤106 。且对于所有 l,r 有 1≤l≤r≤n。