CF1779B.MKnez's ConstructiveForces Task

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

MKnez's ConstructiveForces Task

题目描述

MKnez 想要构造一个数组 s1,s2,,sns_1,s_2,\ldots,s_n,满足以下条件:

  • 每个元素都是不等于 00 的整数;
  • 对于每一对相邻元素,它们的和等于整个数组的和。

更正式地说,对于每个 1in1 \leq i \leq n,都必须有 si0s_i \neq 0。此外,对于每个 1i<n1 \leq i < n,都必须满足 s1+s2++sn=si+si+1s_1 + s_2 + \cdots + s_n = s_i + s_{i+1}

请你帮助 MKnez 构造一个满足这些条件的数组,或者判断这样的数组不存在。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 tt1t1001 \leq t \leq 100),表示测试数据的组数。

接下来的每组测试数据包含一行,一个整数 nn2n10002 \leq n \leq 1000),表示数组的长度。

输出格式

对于每组测试数据,如果存在满足条件的长度为 nn 的数组,输出 "YES"。否则输出 "NO"。如果答案为 "YES",则在下一行输出一个满足条件的序列 s1,s2,,sns_1,s_2,\ldots,s_n。每个元素都应为区间 [5000,5000][-5000,5000] 内的非零整数,即 5000si5000-5000 \leq s_i \leq 5000si0s_i \neq 0,对于每个 1in1 \leq i \leq n 都要满足。

可以证明,如果存在解,则一定存在满足额外范围约束的解。

如果存在多组合法答案,输出任意一组均可。

说明/提示

在第一个测试用例中,[9,5][9,5] 是一个合法答案,因为 9+59+5(相邻元素 s1+s2s_1+s_2 的和)等于 9+59+5(所有元素的和)。其他合法答案还包括 [6,9][6,-9][1,2][-1,-2][5000,5000][-5000,5000] 等。

对于第二个测试用例,下面这些数组都不满足条件:

  • [1,1,1][1,1,1] —— s1+s2=1+1=2s_1+s_2=1+1=2,而 s1+s2+s3=1+1+1=3s_1+s_2+s_3=1+1+1=3,不相等;
  • [1,1,1][1,-1,1] —— s1+s2=1+(1)=0s_1+s_2=1+(-1)=0,而 s1+s2+s3=1+(1)+1=1s_1+s_2+s_3=1+(-1)+1=1,不相等;
  • [0,0,0][0,0,0] —— 数组 ss 不能包含 00

这不是严格证明,但可以说明答案为 "NO"。

由 ChatGPT 4.1 翻译

样例

2
2
3
YES
9 5
NO

在线编程 IDE

建议全屏模式获得最佳体验