#P1001. A. 我是度量大王

A. 我是度量大王

A. 我是度量大王

时间限制:1s

空间限制:256MB

题目描述

这是一道构造题

现有一段 C++ 代码,功能是在一定范围内输出一个随机数:

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    srand(time(NULL));
    int x = rand() % 32768;
	cout << -x << endl;
    // printf("%d\n", -x);
	return 0;
}

请你构造一个长度为 nn 包括以上输出结果的数列,使得这个数列的中位数是以上代码的输出结果。

也就是说,你要给出 n1n-1 个数 a1,a2,...,an1a_1, a_2, ..., a_{n-1} ,加上上面程序输出结果的结果 x-x 后组成一个长度为 nn 的序列:{a1,a2,...,an1,x}\{a_1, a_2, ..., a_{n-1}, -x\},需要满足这个序列的中位数为 x-x.

由于 xx 数据大小的随机性,你构造的数列对 xx 所有的可能值都需要满足条件。

注:对于一组有限个数的数据来说,它们的中位数是这样的一种数:这群数据里的一半的数据比它大,而另外一半数据比它小。 计算有限个数的数据的中位数的方法是:把所有的同类数据按照大小的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那2个数据的算术平均值就是这群数据的中位数。

输入描述

输入一个整数 nn (3n10003 \le n \le 1000);

数据保证 nn 一定是个奇数。

输出描述

输出一行 ,包括 n1n-1 个整数,用空格隔开;代表除代码输出结果之外数列中剩余的 n1n-1 个数。

答案有多种,给出其中任意一种即可,可以按照任意顺序输出。(也就是说如果答案是 {1,1,2,3}\{-1, 1, 2, 3\}, 输出 {1,1,2,3}\{-1, 1, 2, 3\} ,{} {1,1,2,3}\{1,-1,2,3\}, {2,3,1,1}\{2,3,-1, 1\}等结果都是可以的)

注意每个整数的大小需要在 (1000000,1000000)(-1000000, 1000000) 之间。

样例

3
-32768 32768
5
-39999 -40000 0 1