#CF896C. Willem, Chtholly and Seniorious
Willem, Chtholly and Seniorious
CF896C Willem, Chtholly and Seniorious
题目描述
有 个整数的序列 。
执行 次操作。
有四种操作类型:
- :对于 满足 ,将 赋值给 。
- :对于 满足 ,将 赋值给 。
- :输出范围 中第 小的数字,即在所有满足 的 排序后第 小的数字。保证 。
- :输出范围 中所有 的 次幂之和模 ,即 $\left( \sum _ {i = l} ^ r {a _ i} ^ x \right) \bmod y$。
输入格式
第一行包含四个整数 (,,)。
初始值和操作通过如下伪代码生成:
def rnd():
ret = seed
seed = (seed * 7 + 13) mod 1000000007
return ret
for i = 1 to n:
a[i] = (rnd() mod vmax) + 1
for i = 1 to m:
op = (rnd() mod 4) + 1
l = (rnd() mod n) + 1
r = (rnd() mod n) + 1
if (l > r):
swap(l, r)
if (op == 3):
x = (rnd() mod (r - l + 1)) + 1
else:
x = (rnd() mod vmax) + 1
if (op == 4):
y = (rnd() mod vmax) + 1
这里的 是题目中提到的操作类型。
输出格式
对于每个类型为 或 的操作,输出答案。
输入输出样例 #1
输入 #1
10 10 7 9
输出 #1
2
1
0
3
输入输出样例 #2
输入 #2
10 10 9 9
输出 #2
1
1
3
3
说明/提示
对于样例 1,初始数组为 。
操作如下: