#CF1918G. 给定排列

给定排列

G. 给定排列

时间限制:每个测试 11
内存限制:每个测试 256256 MB

你只得到了一个数字 nn。你对此并不觉得有趣,于是你想知道:是否有可能构造一个长度为 nn 的由非零整数组成的数组,使得将数组中的每个元素替换为其相邻元素之和(两端的元素仅由它们唯一的相邻元素替换)后,得到的新数组恰好是原数组的一个排列。

输入

每个测试用例仅包含一个整数 nn2n1062 \le n \le 10^6)。

输出

如果存在解,输出 "YES"(不含引号),随后输出一个满足题目条件的数组 aa109ai109-10^9 \le a_i \le 10^9ai0a_i \ne 0)。若有多组解,输出任意一组即可。

如果不存在合适的数组,输出 "NO"(不含引号)。

单词 "YES""NO" 的大小写可以任意,例如 "YES", "Yes", "yEs" 等都是可以的。

样例

输入

4

输出

YES
1 2 -2 -1

输入

5

输出

NO

说明

在第一个测试中,数组 [1,2,2,1][1, 2, -2, -1] 是合适的,因为将每个元素替换为其相邻元素之和后,得到的新数组为 [2,1,1,2][2, -1, 1, -2],这恰好是原数组的一个排列。

在第二个测试中,可以证明不存在解。