Informatik verbindet dich und mich.信息将你我连结。
Informatik verbindet dich und mich.
信息将你我连结。
B 君希望以维护一个长度为 $n$ 的数组,这个数组的下标为从 $1$ 到 $n$ 的正整数。
一共有 $m$ 个操作,可以分为两种:
因为这个结果可能会很大,所以你只需要输出结果 $\mathrel{\mathrm{mod}} p$ 的值即可。
第一行有四个整数 $n, m, p, c$,所有整数含义见问题描述。
接下来一行 $n$ 个整数,表示 $a$ 数组的初始值。
接下来 $m$ 行,每行三个整数,其中第一个整数表示了操作的类型。
对于每个询问操作,输出一行,包括一个整数表示答案 $\mathrel{\mathrm{mod}} p$ 的值。
1 2 3 4 0 1 4 1 2 4 0 1 4 1 1 3
0 3
1 40 19910626 2 0 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1
1 2 4 16 65536 11418102 18325590 13700558 13700558 13700558 13700558 13700558 13700558 13700558 13700558 13700558 13700558 13700558 13700558 13700558
对于 $10\%$ 的测试点,没有修改;
对于另外 $20\%$ 的测试点,每次修改操作只会修改一个位置(也就是 $l = r$),并且每个位置至多被修改一次;
对于另外 $10\%$ 的测试点,$p = 2$;
对于另外 $10\%$ 的测试点,$p = 3$;
对于另外 $10\%$ 的测试点,$p = 4$;
对于另外 $20\%$ 的测试点,$n \leq 100, m \leq 100$;
对于 $100\%$ 的测试点,$1 \leq n \leq 50000, 1 \leq m \leq 50000, 1 \leq p \leq 100000000, 0 < c < p, 0 \leq a_i < p$。