这是一道模板题。给定一个集合 s,初始为空。你需要维护 n 次下面的操作:
-1
。-1
。由于输入较多,将使用下列随机数生成算法生成输入数据。设输入的 v 值域范围为 [1,p],随机数种子为 seed,代码如下:
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll seed, n, p;
ll nextRand()
{
static ll x = seed;
x ^= x << 11;
x ^= x >> 45;
x ^= x << 14;
return 1 + (x % p + p) % p;
}
signed main()
{
cin.tie(0)->ios::sync_with_stdio(false);
cin >> n >> p >> seed;
for (int i = 0; i < n; ++i)
{
int cmd = nextRand() % 4, v = nextRand();
// cmd为[1,4]对应上述四种命令,v对应操作数
}
return 0;
}
由于输出较大,请将每个输出求和后输出最终和式。
输入
输入一行三个整数 n,p,seed(1\le n\le 10^7,4\le p\le 10^7,1\le seed\le 2^{31})。
输出
输出一行一个整数,设每次询问的答案为 ans,输出 \sum ans。
样例
标准输入 复制文本 |
1000 50 114514 |
标准输出 复制文本 |
5755 |