{"problem":{"name":"[CoE R4 E] 伪随机","description":{"content":"很久很久以前，小明生成了一些数据。 他的数据生成器使用了以下两个函数生成随机数： ```plain 定义函数 srand(32 位无符号整数 seed) \t将 x 赋值为 seed 定义函数 rand() \t将 x 赋值为 x 异或 (x 左移 13 位) \t将 x 赋值为 x 异或 (x 右移 17 位) \t将 x 赋值为 x 异或 (x 左移 5 位) \t返回 x ``` 小明在调用 ","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":262144},"difficulty":{"LuoguStyle":"P6"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP8305"},"statements":[{"statement_type":"Markdown","content":"很久很久以前，小明生成了一些数据。\n\n他的数据生成器使用了以下两个函数生成随机数：\n\n```plain\n定义函数 srand(32 位无符号整数 seed)\n\t将 x 赋值为 seed\n\n定义函数 rand()\n\t将 x 赋值为 x 异或 (x 左移 13 位)\n\t将 x 赋值为 x 异或 (x 右移 17 位)\n\t将 x 赋值为 x 异或 (x 左移 5 位)\n\t返回 x\n```\n\n小明在调用 $\\text{srand(seed)}$ 后，连续调用了 $n$ 次 $\\text{rand()}$，并且记录下了每次 $\\text{rand()}$ 的返回值对 $p$ 取模时得到的余数 $a_i$。\n\n很久很久以后，只有数据生成器依然残存（实现见下发文件的 `generator.cpp`），但生成器的参数 $\\text{seed}$ 和 $p$ 已经消失。\n\n小明想要从数据中恢复这两个参数。即给定序列 $a_i$，需要找到任意一组 $\\text{seed}$ 和 $p$ 的可能的值。你能帮帮他吗？\n\n---\n\n**简要描述**\n\n小明的数据生成器是下发文件的 `generator.cpp`。你需要根据生成器的输出，反推出生成器的输入。\n\n## Input\n\n输入的第一行包含一个整数 $n$。\n\n第二行包含 $n$ 个 $32$ 位无符号整数 $a_1, a_2, \\cdots, a_n$，为小明生成的数据。\n\n## Output\n\n输出仅包含两个 $32$ 位无符号整数 $\\text{seed}$ 和 $p$，为你的答案。你需要保证 $0 < \\text{seed}, p < 2^{32}$。\n\n如果有多组解，你可以输出任意一组。\n\n[samples]\n\n## Note\n\n### 数据规模\n\n本题共有 $50$ 个测试点，每个测试点 $2$ 分。\n\n对于所有数据，保证 $n = 10^5$，$\\text{seed}$ 是随机选取的，且至少存在一组解。","is_translate":false,"language":"English"}],"meta":{"iden":"LGP8305","tags":["洛谷原创","Special Judge","O2优化","洛谷月赛"],"sample_group":[["见下发文件的 sample.in","见下发文件的 sample.out"]],"created_at":"2026-03-03 11:09:25"}}