给定长为 的随机序列 ,下标从 开始。给定随机数种子 ,则 由如下随机算法 C++ 代码生成:(如果你是其他语言选手,请自行实现如下随机算法)
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
long long seed, n, a[maxn];
long long nextRand()
{
static long long x = seed;
x ^= x << 11;
x ^= x >> 45;
x ^= x << 14;
return (x % n + n) % n;
}
signed main()
{
cin.tie(0)->ios::sync_with_stdio(false);
cin >> n >> seed;
for (int i = 0; i < n; ++i)
{
a[i] = nextRand();
}
return 0;
}
记 。其中 是异或运算。请从 里选择两个不同的数 ,使得 。
输入
输入一行两个整数 。保证至少有一个解。
输出
输出一行两个整数 。
如果有多个解,输出任意一个即可。
样例
标准输入 复制文本 |
5 1919810 |
标准输出 复制文本 |
0 2 |
提示
对样例,。计算得:,选择方案有 四种。
题目不保证 一定能以低于 的复杂度计算,请不要尝试化简或加速 的运算。
来源
2022CS杯预选赛