#P12389. COmPoUNdS

COmPoUNdS

题目背景

小 S 因为某些原因对区间加区间取模情有独钟,他造了一些这样的题但是基本上都不会做。有一天小 S 误食了一点冰红茶突然灵感迸发把所有题都秒了,于是趁着药效他随便选了一道题造了数据,然而药效过了后他也不知道怎么做了,所以请你帮他写一下标程,事成送你一瓶冰红茶。

题目描述

给定正整数 n,k,qn,k,q 和一个长度为 nn 的序列 aaqq 次操作或询问:

  • 1 l r c,对于每个 i[l,r]i\in[l,r],令 ai(ai+c)modka_i\gets(a_i+c)\bmod k
  • 2 l1 r1 l2 r2,判断 aa 的两个长度相同的子段 al1r1,al2r2a_{l_1\cdots r_1},a_{l_2\cdots r_2} 是否相等。

输入格式

第一行三个正整数 n,k,qn,k,q

第二行 nn 个正整数表示序列 aa 的初始值。

qq 行每行描述一个操作或询问,格式见题目描述。

输出格式

若干行,每行回答一个 2 操作。如果相等输出 Yes 否则输出 No

6 3 6
0 1 2 0 1 2
2 1 2 1 2
2 1 2 4 5
2 1 2 5 6
1 1 2 1
2 1 2 4 5
2 1 2 5 6
Yes
Yes
No
No
Yes

提示

本题采用捆绑测试及子任务依赖。

子任务编号 分值 特殊限制 依赖子任务 时间限制
11 1010 n,q103n,q\le 10^3 1.5 s\text{1.5 s}
22 2020 k=2k=2 2.5 s\text{2.5 s}
33 n105n\le10^5 11 1.5 s\text{1.5 s}
44 5050 无特殊限制 1,2,31,2,3 2.5 s\text{2.5 s}

对于全部数据,1n,q1061\le n,q\le 10^62k1062\le k\le 10^60ai,c<k0\le a_i,c<k,对于 2 操作 r1l1=r2l2r_1-l_1=r_2-l_2