luogu#P8305. [CoE R4 E] 伪随机
[CoE R4 E] 伪随机
题目描述
很久很久以前,小明生成了一些数据。
他的数据生成器使用了以下两个函数生成随机数:
定义函数 srand(32 位无符号整数 seed)
将 x 赋值为 seed
定义函数 rand()
将 x 赋值为 x 异或 (x 左移 13 位)
将 x 赋值为 x 异或 (x 右移 17 位)
将 x 赋值为 x 异或 (x 左移 5 位)
返回 x
小明在调用 后,连续调用了 次 ,并且记录下了每次 的返回值对 取模时得到的余数 。
很久很久以后,只有数据生成器依然残存(实现见下发文件的 generator.cpp
),但生成器的参数 和 已经消失。
小明想要从数据中恢复这两个参数。即给定序列 ,需要找到任意一组 和 的可能的值。你能帮帮他吗?
简要描述
小明的数据生成器是下发文件的 generator.cpp
。你需要根据生成器的输出,反推出生成器的输入。
输入格式
输入的第一行包含一个整数 。
第二行包含 个 位无符号整数 ,为小明生成的数据。
输出格式
输出仅包含两个 位无符号整数 和 ,为你的答案。你需要保证 。
如果有多组解,你可以输出任意一组。
见下发文件的 sample.in
见下发文件的 sample.out
提示
数据规模
本题共有 个测试点,每个测试点 分。
对于所有数据,保证 , 是随机选取的,且至少存在一组解。