D. 循环位移

    传统题 2000ms 256MiB

循环位移

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

循环位移

题目描述

小七给奶龙一个长度为 nn 的数组 a0,a1,,an1a_0,a_1,\cdots,a_{n-1}, (0ai<p0 \le a_i<p),奶龙不喜欢数组死气沉沉的样子,于是他决定进行 mm 次操作让数组动起来。每次操作有两种形式:

  1. 把当前的数组向右循环位移 xx 位,即 a(i+x)modn:=aia_{(i+x)\bmod n}:= a_i

  2. ai=(ai+x)modpa_i=(a_i+x)\bmod ppp 事先给定)。

充满好奇心的奶龙想要知道每次操作后整个数组的逆序对数,你能帮帮他吗?

输入格式

第一行包含两个正整数 n,m,pn,m,p,分别为数组大小和操作次数,以及事先给定的参数 pp

第二行包含 nn 个整数,依次为 a0,a1,,ana_0,a_1,\cdots,a_n

接下来 mm 行,每行包含两个整数 o,x(o{0,1},0x<p)o,x(o\in\{0,1\},0\le x< p) 描述一次操作。若 oo00 表示这是第一种操作,否则为第二种操作。

输出格式

mm 行,每行一个整数表示当前数组的逆序对数。

样例 #1

样例输入 #1

4 2 10
0 4 2 8
0 2
1 9

样例输出 #1

3
2

样例 #2

样例输入 #2

5 3 5
0 1 2 3 4
0 1
0 1
1 1

样例输出 #2

4
6
4

数据范围

测试点编号 nn \le mm \le pp \le 特殊性质
1 100100 10910^9
2 ~ 3 10001000
4 ~ 5 10610^6 22 p=2p = 2
6 ~ 9 10510^5
10 ~ 15 10610^6 10610^6
16 10910^9 n=pn=pai=ia_i=i
17 ~ 18 所有操作 o=1o = 1
19 ~ 20

对于所有数据,保证 1n,m106,2p109,0ai<p1\le n,m\le 10^6,2\le p\le 10^9,0\le a_i<p

[YDRS#013]人生有梦,各自精彩 · 云斗六月 Silver Round

未参加
状态
已结束
规则
IOI
题目
5
开始于
2025-6-7 9:00
结束于
2025-6-13 20:00
持续时间
5 小时
主持人
参赛人数
169