Tim the Busy Beaver 报名参加了手枪课程以满足体育要求,并希望成为一名精英神枪手。MIT 射击场有 $N$ ($1 \le N \le 3 \cdot 10^5$) 条编号为 $1$ 到 $N$ 的靶道。第 $i$ 条靶道目前有 $A_i$ ($0 \le A_i \le 5 \cdot 10^5$) 个目标排成一排。保证整个射击场中至少有一个目标,Tim the Busy Beaver 必须击落它们。
Tim 的练习枪有无限发子弹,他需要击落每一个目标。在每次射击前,Tim 会选择一条靶道并向该靶道发射 1 发子弹。一旦目标被击中,它就会倒下且不会再重新立起。
然而,Tim 的枪法很差,因此每一发奇数编号的射击都会击中该靶道上的第一个目标,而每一发偶数编号的射击都会错过该靶道上的第一个目标,并击中第二个目标(如果存在的话)。第一发射击编号为 1。
Tim 不允许进行不会击中任何目标的射击,因为这会损坏目标后面的墙壁。请帮助 Tim 找到一个能击落所有目标的射击序列,或者指出不存在这样的序列。
输入格式
每个测试包含多个测试用例。第一行包含一个整数 $t$ ($1 \le t \le 1000$):测试用例的数量。接下来是各测试用例的描述。
每个测试用例包含 2 行。第一行包含 $N$,即靶道的数量。第二行包含 $N$ 个空格分隔的整数 $A_1, A_2, \dots, A_n$,表示每条靶道上的目标数量。
保证所有测试用例中 $A_i$ 的总和不超过 $5 \cdot 10^5$。 保证所有测试用例中 $N$ 的总和不超过 $3 \cdot 10^5$。
输出格式
对于每个测试用例,如果存在击中所有目标的射击序列,则输出 "YES",否则输出 "NO"。答案不区分大小写(例如 "yEs", "yes", "Yes", "YES" 均可)。
令 $A$ 为该测试用例中 $A_i$ 的总和(注意 $A$ 在不同测试用例中可能不同)。如果存在这样的序列,请在单独的一行中输出一个包含 $A$ 个空格分隔整数的序列 $l_1, l_2, \dots, l_A$,其中 $l_i$ 是 Wabbit 在第 $i$ 次射击时应瞄准的靶道编号。如果存在多种解,输出其中任意一个即可。
评分标准
如果 YES/NO 的回答正确,但提供的 $l_i$ 值不正确,你将获得每个子任务 50% 的分数。对于每个测试用例,你必须输出恰好 $A$ 个 $l_i$ 值才能获得部分分数。
- (30 分):所有测试用例中 $N$ 的总和不超过 2000,且所有测试用例中 $A_i$ 的总和不超过 2000。
- (70 分):无附加限制。
样例
输入格式 1
3 1 3 1 2 5 1 1 1 1 1
输出格式 1
YES 1 1 1 NO NO
说明
在第一个测试用例中,只有 1 条靶道且有 3 个目标,Wabbit 可以通过向靶道 1 发射 3 发子弹击落所有目标。如果目标从前到后依次为 $A, B, C$,第一发子弹会击落 $A$,第二发子弹会错过 $B$ 并击落 $C$,最后一发子弹会击落 $B$。
在第二个测试用例中,只有 1 条靶道且有 2 个目标。向靶道 1 发射的第一发子弹会击中前方的目标,但第二发子弹会因为打偏而无法击落剩余的目标。因此,该测试用例不存在射击序列。
在第三个测试用例中,有 5 条靶道,每条靶道各有 1 个目标。向任意靶道发射的第一发子弹会击中该靶道上的目标,但第二发子弹将无法击中任何其他目标。因此,该测试用例不存在射击序列。