#P1203. Problem C. 你说的对,但是内存不够

Problem C. 你说的对,但是内存不够

Problem C. 你说的对,但是内存不够

时间限制:4000 ms

空间限制:1 MB

题目描述

现有随机生成的长度为 nn (nn 是奇数) 的正整数数组 a1,ana_1,\cdots a_n,求数组的中位数。

随机数按以下方法生成,请先读入 x 的初值,然后再调用函数。

unsigned int x;
unsigned int rnd() {
	x ^= x << 13;
	x ^= x >> 17;
	x ^= x << 5;
    return x;
}

其中,aia_i 是第 ii 次调用 rnd 函数的返回值。

输入格式

仅两个正整数 n(3n107),x(0x2321)n(3\le n\le 10^7),x(0\le x\le 2^{32}-1),表示整数个数和随机数 x 的初值。

输出格式

输出数组的中位数,即:将数组升序排序后,第 n+12\frac{n+1}{2} 大的数。

样例输入1

5 1

样例输出1

307599695

样例1解释

对于第一组样例,调用题目描述中的函数,生成的数组是: {270369 67634689 2647435461 307599695 2398689233}

因此,中位数是 307599695。

样例输入2

99 0

样例输出2

0

数据范围与约定

3n1070x23213\le n\le 10^7,0\le x \le 2^{32} - 1

保证 nn 是奇数。

请注意本题的空间限制。

请使用 C/C++ 完成本题,使用其他语言可能超出空间限制(由于Hydro平台对空间占用的统计方式)。