P6688 可重集

题目描述

给出一个长度为 $n$ 的非负整数序列 $a_1,a_2,a_3,\ldots, a_n$,给出 $q$ 次操作,每次先给出一个参数 $op$: - $op=0$,接下来给出 $2$ 个参数 $x,y$,把 $a_x$ 修改为 $y$。 - $op=1$,接下来给出 $4$ 个参数 $ l_1,r_1,l_2,r_2$(保证 $r_1-l_1=r_2-l_2$),你需要判断区间 $[l_1,r_1]$ 与区间 $[l_2,r_2]$ 是否本质相同,如果本质相同输出 `YES`,否则输出 `NO`。 本质相同的定义:令区间长度为 $\text{len}$ ,序列 $p_{1}\dots p_{\text{len}}$ 为 $a_{l_1}\dots a_{r_1}$ 升序排序后的结果,序列 $q_{1}\dots q_\text{len}$ 为 $a_{l_2}\dots a_{r_2}$ 升序排序后的结果,存在一个整数 $k$ 使得满足 $\forall i,p_i+k=q_i$。

输入格式

输出格式

说明/提示

- Subtask1 ($25$ pts):$1\leq n,q \leq 1000$。 - Subtask2 ($25$ pts):$1\leq n,q \leq 10^5$,$0\leq a_i,y\leq 100$。 - Subtask3 ($25$ pts):$1\leq n,q \leq 10^5$。 - Subtask4 ($25$ pts):无特殊限制。 你只有通过 subtask 中的所有测试点才能获得该 subtask 的分数。 对于所有数据满足:$1\leq n,q \leq 10^6$,$1\leq x \leq n$,$0\leq a_i,y \leq 10^6$ 。且对于所有 $l,r$ 有 $1\leq l\leq r\leq n$。