Ame 和 Gura 的奇妙探险

题目背景

#### 鉴于洛谷的 SPJ 编译可能依赖于用户选择的编译器版本,且 SPJ 使用了 C++11,请 C++ 选手使用 C++11 或以上进行提交。 ~~Lewdson~~ Watson Amelia 和 Gawr Gura 在玩 Mivicraft。 Gura 想将地狱里的交通升级为冰船隧道,但在此之前她先得有一把精准采集的镐子。尝试了一遍又一遍,但终究未能成功的她只好可怜兮兮地找到 Ame。Ame 立刻说道:“So easy! I'll get it in my first try.” (第一次之后)“Well let's try it again!” (第二次之后)“Hmmm maybe something's getting wrong today?” (第三次之后)“I'll give you a ground pound you silly enchanting table!” (第四次之后)“.. Damn.” 于是 Ame 决定借助一些 技 巧 来拿到精准采集的镐子。她通过查询资料得知 Mivicraft 产生随机数使用了梅森旋转算法(Mersenne Twister,MT19937)。Mivicraft 会通过一个 MT19937 引擎产生一系列的随机数来生成世界的区块。

题目描述

Ame 知道,只要她能够找到初始化 MT19937 引擎时使用的种子,她就能够推断出自己如何才能获得一把精准采集的镐子。于是她游历世界,并通过聪明的侦探头脑算出了这个 MT19937 引擎 **刚被初始化后** 生成的 $N$ 个随机数(注:这里的 $N$ 是 MT19937 引擎中的一个参数)。现在她把这 $N$ 个随机数给了你,希望你能够推断出初始化 MT19937 引擎时使用的种子($0\le\text{种子}<2^{32}$)。值得注意的是,Mivicraft 使用的并非标准的 MT19937 引擎,其中的一些参数与论文相比有所改变,Ame 把它们附加到了输入中。请你帮帮 Ame 吧! 好心的 Mivik 为你准备了一份简单易懂的 MT19937 实现,请在附件中查看。

输入输出格式

输入格式


第一行 10 个非负整数,分别对应 MT19937 中的 10 个参数:$N$、$M$、$A$、$U$、$S$、$B$、$T$、$C$、$L$ 和 $F$。 接下来 $N$ 行,每行一个非负整数,依次表示 MT19937 引擎刚被初始化后生成的 $N$ 个随机数。

输出格式


一行一个非负整数,代表 MT19937 引擎初始化时使用的种子。数据保证有解,如果有多个解,你只需要输出任意一个即可。

输入输出样例

输入样例 #1

见 sample/1.in

输出样例 #1

见 sample/1.out

输入样例 #2

见 sample/2.in

输出样例 #2

见 sample/2.out

说明

### 样例解释 #1 十个参数全部使用标准的 MT19937 参数,种子为 `233333`。也就是说,你可以通过下面的程序产生同样的随机数序列: ```cpp #include <iostream> #include <random> std::mt19937 engine(233333); int main() { for (int i = 0; i < 624; ++i) std::cout << engine() << std::endl; return 0; } ``` ### 测试点约束 **本题采用捆绑测试。** 对于全部数据,有 $10\le M<N\le 2\times 10^5$,$0\le A,B,C<2^{32}$,$1\le U,S,T,L\le 31$,$1\le F<2^{32}$,保证 $F$ 是奇数。 每个子任务的具体限制见下表: | 子任务编号 | 分值 | 特殊限制 | |:-:|:-:|:-:| | 1 | 20 | 种子小于等于 $1000$ | | 2 | 30 | $U=S=T=L=16$,$A=B=C=0$ | | 3 | 50 | 无 | **注:下发文件使用 UTF-8 编码,请使用可识别该编码的编辑器打开。** **附件下载备用链接:[百度网盘](https://pan.baidu.com/s/1ZJQfZK93Qw2lYrDHLQJh2Q) 提取码:jf9e**